اختيار البيانات داخل النطاقات في SQL

تقديم جملة WHERE وظروف BETWEEN

توفر لغة الاستعلام الهيكلية (SQL) لمستخدمي قاعدة البيانات القدرة على إنشاء استعلامات مخصصة لاستخراج المعلومات من قواعد البيانات. في مقالة سابقة ، استكشفنا استخراج المعلومات من قاعدة بيانات باستخدام استعلامات SQL SELECT . لنقم بتوسيع هذه المناقشة واستكشف كيف يمكنك إجراء استعلامات متقدمة لاسترداد البيانات التي تطابق شروطًا محددة.

دعونا نعتبر مثالاً يستند إلى قاعدة بيانات Northwind شائعة الاستخدام ، والتي عادةً ما تأتي مع منتجات قاعدة البيانات كبرنامج تعليمي.

إليك مقتطف من جدول منتجات قاعدة البيانات:

جدول المنتجات
معرف المنتج اسم المنتج واسم المورد الكمية لكل وحدة سعر الوحدة الوحدات في المخزن
1 تشاي 1 10 صناديق × 20 كيس 18.00 39
2 تشانغ 1 24 - 12 زجاجة أوقية 19.00 17
3 اليانسون شراب 1 12 - 550 مل قوارير 10.00 13
4 توابل الشيف انطون الكاجون 2 48 - 6 أوقية من الجرار 22.00 53
5 الشيف انطون غومبو ميكس 2 36 صندوقا 21.35 0
6 الجدة في Boysenberry انتشار 3 12 - 8 أوقية جرة 25.00 120
7 العم بوب المجفف والكمثرى 3 12 - 1 رطل pkgs. 30.00 15

شروط الحدود البسيطة

تتضمن القيود الأولى التي سنضعها في استعلامنا شروطًا حدودية بسيطة. يمكننا تحديد هذه في جملة WHERE من استعلام SELECT ، باستخدام عبارات الشرط البسيطة التي تم إنشاؤها بواسطة عوامل التشغيل القياسية ، مثل <،> ،> = ، و <=.


أولاً ، دعنا نجرب استعلامًا بسيطًا يسمح لنا باستخراج قائمة بجميع المنتجات الموجودة في قاعدة البيانات التي تحتوي على سعر وحدة أكثر من 20.00:

SELECT ProductName ، UnitPrice FROM المنتجات WHERE UnitPrice> 20.00

ينتج عن ذلك قائمة بأربعة منتجات ، كما هو موضح أدناه:

ProductName UnitPrice ------- -------- الشيف انطون البامية المزيج 21.35 الشيف انطون الكاجون التوابل 22.00 الجدة في Boysenberry Spread 25.00 العم بوب العضوية الكمثرى 30.00

يمكننا أيضًا استخدام عبارة WHERE مع قيم السلسلة. هذا يساوي الأحرف إلى الأرقام بشكل أساسي ، مع A تمثل القيمة 1 و Z تمثل القيمة 26. على سبيل المثال ، يمكننا عرض جميع المنتجات ذات الأسماء التي تبدأ بـ U أو V أو W أو X أو Y أو Z مع الاستعلام التالي:

SELECT ProductName من المنتجات WHERE ProductName> = 'T'

والتي تنتج النتيجة:

ProductName ------- العم بوب العضوية الأجاص المجفف

التعبير عن النطاقات باستخدام الحدود

تسمح لنا أيضًا عبارة WHERE بتنفيذ شرط نطاق على قيمة باستخدام شروط متعددة. على سبيل المثال ، إذا أردنا الحصول على طلب البحث أعلاه وتقييد النتائج على المنتجات ذات الأسعار بين 15.00 و 20.00 ، فيمكننا استخدام طلب البحث التالي:

SELECT ProductName، UnitPrice FROM products WHERE UnitPrice> 15.00 AND UnitPrice <20.00

هذا يعطي النتيجة المبينة أدناه:

ProductName UnitPrice ------- -------- Chai 18.00 Chang 19.00

التعبير عن النطاقات مع BETWEEN

يوفر SQL أيضًا اختصارًا جملة BETWEEN تقلل عدد الشروط التي نحتاج إلى تضمينها ويجعل الاستعلام أكثر قابلية للقراءة. على سبيل المثال ، بدلاً من استخدام شرطين WHERE أعلاه ، يمكننا التعبير عن نفس طلب البحث على النحو التالي:

SELECT ProductName، UnitPrice FROM products WHERE UnitPrice BETWEEN 15.00 و 20.00

كما هو الحال مع بنود الشرط الأخرى ، تعمل BETWEEN مع قيم السلسلة أيضًا. إذا أردنا إنشاء قائمة بجميع البلدان التي تبدأ بـ V أو W أو X ، فيمكننا استخدام طلب البحث:

SELECT ProductName من المنتجات WHERE ProductName بين "A" و "D"

والتي تنتج النتيجة:

ProductName ------- Aniseed Syrup تشاي تشانغ طاه أنطون البامية التوابل التوابل انطون الكاجون

تعتبر جملة WHERE جزءًا فعالاً من لغة SQL التي تسمح لك بتقييد النتائج إلى قيم تقع ضمن نطاقات محددة. وهو يستخدم بشكل كبير للمساعدة في التعبير عن منطق الأعمال ويجب أن يكون جزءًا من مجموعة أدوات كل محترفي قواعد البيانات.

غالبًا ما يكون من المفيد دمج العبارات الشائعة في إجراء مخزن لجعله في متناول أولئك الذين ليس لديهم معرفة بـ SQL.