WHERE Clause
```wiki
جملة WHERE: دليل شامل للمبتدئين في SQL
جملة `WHERE` هي واحدة من أهم وأكثر الجمل استخدامًا في لغة SQL (Structured Query Language). تتيح لك هذه الجملة تحديد شروط لتصفية البيانات التي يتم إرجاعها من قاعدة البيانات. بمعنى آخر، يمكنك استخدام `WHERE` لاسترجاع صفوف معينة فقط تلبي معايير محددة. هذا المقال مصمم للمبتدئين ويهدف إلى شرح كل ما تحتاج معرفته حول جملة `WHERE`، مع أمثلة توضيحية وتفصيلية.
ما هي جملة WHERE؟
جملة `WHERE` تأتي بعد جملة `SELECT` وتستخدم لتحديد الشروط التي يجب أن تستوفيها السجلات ليتم تضمينها في مجموعة النتائج. بدون جملة `WHERE`، ستعيد جملة `SELECT` جميع الصفوف من الجدول المحدد.
بناء جملة WHERE
البناء العام لجملة `WHERE` هو كالتالي:
```sql SELECT column1, column2, ... FROM table_name WHERE condition; ```
- `SELECT column1, column2, ...`: تحدد الأعمدة التي تريد استرجاعها.
- `FROM table_name`: تحدد الجدول الذي تريد الاستعلام عنه.
- `WHERE condition`: تحدد الشرط الذي يجب أن تستوفيه الصفوف ليتم تضمينها في مجموعة النتائج.
أنواع الشروط في جملة WHERE
يمكن أن تكون الشروط في جملة `WHERE` متنوعة وتشمل:
- **المقارنات:** تستخدم عوامل المقارنة (مثل `=`, `!=`, `>`, `<`, `>=`, `<=`) لمقارنة قيم الأعمدة بقيم محددة.
- **المنطقية:** تستخدم عوامل منطقية (مثل `AND`, `OR`, `NOT`) لدمج عدة شروط.
- **النطاقات:** تستخدم عامل `BETWEEN` لتحديد نطاق من القيم.
- **القوائم:** تستخدم عامل `IN` لتحديد قائمة من القيم.
- **الأنماط:** تستخدم عامل `LIKE` للبحث عن أنماط معينة في النصوص.
- **القيم الفارغة:** تستخدم عامل `IS NULL` أو `IS NOT NULL` للبحث عن القيم الفارغة.
أمثلة توضيحية
لنفترض أن لدينا جدولًا باسم `customers` يحتوي على الأعمدة التالية: `customer_id`, `first_name`, `last_name`, `city`, `country`.
- **مثال 1: استرجاع جميع العملاء من مدينة "London"**
```sql SELECT * FROM customers WHERE city = 'London'; ```
- **مثال 2: استرجاع جميع العملاء الذين ليسوا من دولة "USA"**
```sql SELECT * FROM customers WHERE country != 'USA'; ```
- **مثال 3: استرجاع جميع العملاء الذين تزيد أعمارهم عن 30 عامًا (لنفترض وجود عمود باسم `age`)**
```sql SELECT * FROM customers WHERE age > 30; ```
- **مثال 4: استرجاع جميع العملاء الذين يعيشون في "London" أو "Paris"**
```sql SELECT * FROM customers WHERE city = 'London' OR city = 'Paris'; ```
- **مثال 5: استرجاع جميع العملاء الذين يعيشون في "London" و أعمارهم أكبر من 25 عامًا**
```sql SELECT * FROM customers WHERE city = 'London' AND age > 25; ```
- **مثال 6: استرجاع جميع العملاء الذين تتراوح أعمارهم بين 20 و 30 عامًا**
```sql SELECT * FROM customers WHERE age BETWEEN 20 AND 30; ```
- **مثال 7: استرجاع جميع العملاء الذين يعيشون في "London" أو "Paris" أو "New York"**
```sql SELECT * FROM customers WHERE city IN ('London', 'Paris', 'New York'); ```
- **مثال 8: استرجاع جميع العملاء الذين تبدأ أسماؤهم الأولى بحرف "A"**
```sql SELECT * FROM customers WHERE first_name LIKE 'A%'; ```
- **مثال 9: استرجاع جميع العملاء الذين لديهم قيمة فارغة في عمود `city`**
```sql SELECT * FROM customers WHERE city IS NULL; ```
- **مثال 10: استخدام `NOT` لعكس الشرط**
```sql SELECT * FROM customers WHERE NOT country = 'USA'; ```
ترتيب الشروط في جملة WHERE
عند استخدام عدة شروط في جملة `WHERE`، من المهم فهم ترتيب تنفيذ هذه الشروط. بشكل عام، يتم تقييم الشروط بترتيب ظهورها في الجملة. ومع ذلك، يمكنك استخدام الأقواس `()` لتغيير ترتيب التنفيذ.
مثال:
```sql SELECT * FROM customers WHERE (city = 'London' OR city = 'Paris') AND age > 25; ```
في هذا المثال، سيتم تقييم الشرط داخل الأقواس أولاً (`city = 'London' OR city = 'Paris'`)، ثم سيتم تطبيق الشرط `age > 25` على النتائج.
استخدام `LIKE` للبحث عن الأنماط
عامل `LIKE` قوي جدًا للبحث عن أنماط معينة في النصوص. يستخدم مع رمز `%` (يمثل أي عدد من الأحرف) و `_` (يمثل حرفًا واحدًا).
- `LIKE 'A%'`: يبحث عن جميع النصوص التي تبدأ بحرف "A".
- `LIKE '%A'`: يبحث عن جميع النصوص التي تنتهي بحرف "A".
- `LIKE '%A%'`: يبحث عن جميع النصوص التي تحتوي على حرف "A" في أي مكان.
- `LIKE 'A_B'`: يبحث عن جميع النصوص التي تبدأ بحرف "A" وتنتهي بحرف "B" مع وجود حرف واحد بينهما.
التعامل مع القيم الفارغة (NULL)
القيم الفارغة (NULL) تمثل بيانات مفقودة أو غير معروفة. لا يمكنك استخدام عوامل المقارنة العادية (مثل `=`) لمقارنة القيم الفارغة. بدلاً من ذلك، استخدم `IS NULL` أو `IS NOT NULL`.
استخدام `WHERE` مع أنواع بيانات مختلفة
يمكن استخدام جملة `WHERE` مع أنواع بيانات مختلفة، مثل:
- **الأرقام:** `WHERE age = 30`
- **النصوص:** `WHERE city = 'London'`
- **التواريخ:** `WHERE order_date = '2023-10-27'`
- **القيم المنطقية:** (قد يختلف بناء الجملة حسب نظام قاعدة البيانات)
اعتبارات الأداء
- **الفهرسة (Indexing):** يمكن أن يؤدي استخدام الفهارس على الأعمدة المستخدمة في جملة `WHERE` إلى تحسين أداء الاستعلام بشكل كبير.
- **تجنب استخدام `LIKE` في بداية النمط:** البحث عن أنماط تبدأ بـ `%` يمكن أن يكون بطيئًا، حيث لا يمكن استخدام الفهارس بشكل فعال.
- **استخدام `WHERE` بدلاً من `HAVING`:** إذا كنت بحاجة إلى تصفية البيانات قبل تجميعها، فاستخدم `WHERE` بدلاً من `HAVING`.
العلاقة مع مفاهيم SQL الأخرى
- **SELECT:** جملة `WHERE` تعمل جنبًا إلى جنب مع `SELECT` لاسترجاع البيانات المحددة. SELECT statement
- **FROM:** تحدد `WHERE` الشروط على البيانات المستخرجة من الجدول المحدد بواسطة `FROM`. FROM clause
- **JOIN:** يمكن استخدام `WHERE` لتحديد شروط الربط بين الجداول في استعلامات `JOIN`. JOIN clause
- **ORDER BY:** يمكن استخدام `WHERE` لتصفية البيانات قبل ترتيبها باستخدام `ORDER BY`. ORDER BY clause
- **GROUP BY:** يمكن استخدام `WHERE` لتصفية البيانات قبل تجميعها باستخدام `GROUP BY`. GROUP BY clause
- **HAVING:** تستخدم `HAVING` لتصفية البيانات بعد تجميعها، بينما تستخدم `WHERE` لتصفية البيانات قبل تجميعها. HAVING clause
تطبيقات في الخيارات الثنائية (Binary Options)
على الرغم من أن SQL لا تستخدم بشكل مباشر في تداول الخيارات الثنائية, فإن مبادئ تصفية البيانات التي تعلمتها من جملة `WHERE` يمكن تطبيقها على تحليل البيانات المتعلقة بالخيارات الثنائية. على سبيل المثال:
- **تصفية الصفقات:** يمكنك استخدام شروط لتصفية الصفقات بناءً على أصول معينة، أو أوقات معينة، أو مؤشرات فنية معينة.
- **تحليل البيانات التاريخية:** يمكنك استخدام شروط لتصفية البيانات التاريخية للعثور على أنماط أو اتجاهات معينة.
- استراتيجيات متعلقة:**
- استراتيجية مارتينجال
- استراتيجية المتوسط المتحرك
- استراتيجية اختراق النطاق
- استراتيجية البولينجر باند
- استراتيجية RSI
- استراتيجية MACD
- استراتيجية Ichimoku Cloud
- استراتيجية Fibonacci Retracement
- استراتيجية Price Action
- استراتيجية Pin Bar
- تحليل فني:**
- تحليل الشموع اليابانية
- مؤشر القوة النسبية (RSI)
- مؤشر الماكد (MACD)
- المتوسطات المتحركة
- مؤشر ستوكاستيك
- تحليل حجم التداول:**
- مؤشرات:**
- الاتجاهات:**
- أسماء الاستراتيجيات:**
الخلاصة
جملة `WHERE` هي أداة قوية لتصفية البيانات في SQL. من خلال فهم بناء الجملة وأنواع الشروط المختلفة، يمكنك استرجاع البيانات التي تحتاجها بالضبط. تذكر أن استخدام الفهارس وتجنب استخدام `LIKE` في بداية النمط يمكن أن يحسن أداء الاستعلام. كما أن مبادئ التصفية التي تعلمتها هنا يمكن تطبيقها على تحليل بيانات الخيارات الثنائية لتحسين استراتيجيات التداول.
SQL ```
ابدأ التداول الآن
سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)
انضم إلى مجتمعنا
اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين