عامل 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
تعليقات
إرسال تعليق