عبارة الشرط WHERE في SQL
يتم استخدام عبارة الشرط WHEREفي SQLلتصفية السجلات وفلترتها. أي يتم استخدام عبارة WHERE لاستخراج السجلات التي تنطبق عليها شرط محدد أو بضعة شروط محددة فقط.
بناء جملة WHERE
الشكل العام لاستخدام وبناء أمر WHERE في لغة SQL (أي WHERE syntax) تتم كما يلي:
FROM table_name; WHERE condition; |
حيث يمثل العمود الأول Column 1، والعمود الثاني Column 2أسماء حقول الجدول الذي تريد تحديد واستخراج البيانات منه بحسب الشرط المحدد condition.
ملاحظة: لا يتم استخدام جملة WHEREفي عبارة SELECTفحسب، بل يتم استخدامها أيضاً في عبارة UPDATE و DELETE وما إلى ذلك!
مثال على استخدام أمر WHERE في SQL
الجدول التالي يوضح مجموعة مختارة من جدول "الزبائن" Customers
Country | City | Address | CustomerName | CustomerID |
UK | London | 120 Hanover Sq. | John | 100 |
USA | New York | 109 E 16th St | Marry | 200 |
Jordan | Amman | Al-Mutanabbi St. | Ahmad | 300 |
USA | New York | 110 E 20th St | Ali | 400 |
Egypt | Cairo | El Tahrir St | Ahmad | 500 |
مثال 1: تحديد وإظهار حقول محددة ومختارة باستخدام WHERE أي ضمن شرط معين
فرضاً أننا أردنا اظهار "اسم الزبون" CustomerNameالذي يسكن في الولايات المتحدة الأمريكية USAفقط. تحدد جملة SQLالتالية عمود "CustomerName" وتظهر جميع الأسماء الذين يسكنون فقط في دولة USAالموجودة في الحقل "Country" من جدول "Customers":
SELECT CustomerName FROM Customers; WHERE Country =’USA’; |
ليظهر الجدول التالي:
CustomerName |
Marry |
Ali |
مثال 2: تحديد وإظهار جميع الحقول (الأعمدة) باستخدام التي ينطبق عليها شرط محدد باستخدام الأمر WHERE
فرضاً أننا أردنا اظهار جميع سجلات "اسم الزبون" CustomerNameوالتي أسمائهم Ahmad، تقوم عبارة SQLالتالية بتحديد وإظهار جميع الأعمدة (أي الحقول) من جدول "الزبائن" Customersالتي ينطبق عليها ذلك الشرط كما يلي:
WHERE CustomerName = ’Ahmad’; |
الحقول النصية Textوالحقول الرقمية Numeric
تتطلب SQL وجود علامات اقتباس فردية (أي ‘ ’) حول القيم النصية TEXT، كما تسمح معظم أنظمة قواعد البيانات الأخرى بوجود مثل علامات الاقتباس المزدوجة (أي “ ”). ومع ذلك، يجب عدم وضع الحقول الرقمية بين علامتي اقتباس كما في المثال التالي
مثال على الحقول النصية والحقول الرقمية
SELECT * FROM Customers; WHERE CustomerName = ’Ahmad’ AND CustomerID = 300; |
في هذا المثال، ستقوم SQL بعرض بيانات الزبون Ahmad والذي يمتلك رقم معرف 300. لاحظ أن علامات اقتباس الفردية تم استخدامها مع الاسم (أي ‘Ahmad’)، وأن رقم المعرف (أي 300) لم يوضع في أي نوع من علامات الاقتباس. أما العبارة AND فهي أمر منطقي يستخدم لدمج أكثر من شرط مطلوب معاً لرفع مستوى عملية الفلترة.
العمليات المرتبطة بالعبارة WHERE في SQL
العمليات التالية، يمكن استخدامها مع عبارة WHERE في SQL، مع شرع كل من تلك العمليات في الجدول التالي:
العملية | الوصف |
= | يساوي Equal |
> | أكبر من Greater than |
< | أقل من Less than |
>= | أكبر من أو يساوي Greater than |
<= | أقل من أو يساوي Less than or Equal |
<> | لا يساوي (وأحياناً يعبر عنها بالعبارة =!) |
BETWEEN | تحديد نطاق معين للشرط |
LIKE | مقارنة والبحث عن الأنماط (البحث الجزئي) |
IN | لتحديد عدة قيم ممكنة للعمود (الحقل) |