عامل BETWEEN في SQL

عامل BETWEEN في SQL

عامل BETWEEN في SQL

عامل BETWEEN يُستخدم لاختيار القيم التي تقع ضمن نطاق محدد.
القيم يمكن أن تكون أرقام أو نصوص أو تواريخ.
هذا العامل يشمل القيم الحدودية (أي أن القيمة الأولى والأخيرة تُعتبر جزءًا من النطاق).
يمكن دمجه مع AND و IN للحصول على نتائج أكثر تحديدًا.

مثال مع الأرقام

إرجاع كل المنتجات التي سعرها بين 10 و 20:

SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;
    

ملاحظات حول الأداء

استخدام BETWEEN مع نطاقات كبيرة جدًا يمكن أن يبطئ الأداء خصوصًا إذا لم يكن العمود مفهرسًا.
يُفضل دائمًا التأكد من وجود Index على الأعمدة التي ستستخدم مع BETWEEN عند التعامل مع قواعد بيانات كبيرة.

صياغة BETWEEN

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
    

قاعدة البيانات التجريبية

الجدول التالي من جدول Products المستخدم في الأمثلة:

ProductID ProductName SupplierID CategoryID Unit Price
1 Chais 1 1 10 boxes x 20 bags 18
2 Chang 1 1 24 - 12 oz bottles 19
3 Aniseed Syrup 1 2 12 - 550 ml bottles 10
4 Chef Anton's Cajun Seasoning 2 2 48 - 6 oz jars 22
5 Chef Anton's Gumbo Mix 2 2 36 boxes 21.35

NOT BETWEEN

لعرض المنتجات التي تقع خارج النطاق السابق:

SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;
    

BETWEEN مع IN

يمكن الجمع بين BETWEEN و IN لتحديد قيم أكثر دقة:

SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20
AND CategoryID IN (1,2,3);
    

BETWEEN مع النصوص

يمكنك استخدام BETWEEN مع النصوص لاختيار القيم أبجديًا.
المثال التالي يُرجع المنتجات التي اسمها بين Carnarvon Tigers و Mozzarella di Giovanni:

SELECT * FROM Products
WHERE ProductName BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'
ORDER BY ProductName;
    

مثال آخر: بين Carnarvon Tigers و Chef Anton's Cajun Seasoning:

SELECT * FROM Products
WHERE ProductName BETWEEN 'Carnarvon Tigers' AND 'Chef Anton''s Cajun Seasoning'
ORDER BY ProductName;
    

NOT BETWEEN مع النصوص

المثال التالي يُرجع المنتجات التي اسمها ليس بين Carnarvon Tigers و Mozzarella di Giovanni:

SELECT * FROM Products
WHERE ProductName NOT BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'
ORDER BY ProductName;
    

BETWEEN مع التواريخ

يمكن أيضًا استخدام BETWEEN مع التواريخ.
المثال التالي يُرجع جميع الطلبات التي تاريخها بين 1 يوليو 1996 و 31 يوليو 1996:

SELECT * FROM Orders
WHERE OrderDate BETWEEN '1996-07-01' AND '1996-07-31';
    

جدول الطلبات (Sample Table)

OrderID CustomerID EmployeeID OrderDate ShipperID
10248 90 5 7/4/1996 3
10249 81 6 7/5/1996 1
10250 34 4 7/8/1996 2
10251 84 3 7/9/1996 1
10252 76 4 7/10/1996 2

تمرين

أي جملة SQL تُرجع جميع المنتجات التي سعرها بين 10 و 20؟

  • SELECT * FROM Products WHERE Price = 10 AND Price = 20;
  • SELECT * FROM Products WHERE Price BETWEEN 10 AND 20; ✅
  • SELECT * FROM Products WHERE Price >= 10 OR Price <= 20;
  • SELECT * FROM Products WHERE Price LIKE '10-20';

هاشتاجات

#SQL #قواعد_البيانات #تعليم_SQL #SalemNet

تعليقات