تحديد مجال أو عدد محدّد من القيم في SQL

من موسوعة حسوب
< SQL

معامل IN

يستخدم لتحديد عددٍ معيّنٍ من القيم المحتملة لأحد حقول البيانات.

مثال

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

الجدول الأول: جدول السيارات cars

Colour Price Year Company Model CarID
White 22,500 2018 KIA Optima 05081
Red 25,995 2017 KIA Optima Hybrid 05082
Red 31,900 2018 KIA Stinger 05083
Black 31,990 2017 KIA Cadenza 05084
Blue 23,240 2018 KIA Niro 05085
Grey 14,200 2018 KIA Rio 5-Door 05086
Blue 18,200 2018 KIA Forte5 05087

الجدول الثاني: جدول الزبائن customers

Remaining CarID Name CustomerID
19,500 05081 Kareem al-Hamdan 0158
17,500 05081 Rasha Mostafa 0160
10,200 05087 Jaber Hammad 0161
19,990 05084 Wessam Fattah 0162

إن تنفيذ الاستعلام الآتي:

SELECT * 
FROM cars
WHERE Colour IN ( 'Red' , 'Black', 'White');

سيُظهِر كافة السيارات التي تكون فيها قيمة اللون إحدى القيم Red أو Black أو White، وستظهر النتائج الآتية:

Colour Price Year Company Model CarID
White 22,500 2018 KIA Optima 05081
Red 25,995 2017 KIA Optima Hybrid 05082
Red 31,900 2018 KIA Stinger 05083
Black 31,990 2017 KIA Cadenza 05084

لمعرفة السيارات التي لم تُشترَ من قبل أيّ من الزبائن يمكن استخدام الاستعلام الآتي:

SELECT * 
FROM cars
WHERE CarID NOT IN(
  SELECT CarID
  FROM customers
  );

وذلك اعتمادًا على مفهوم الاستعلام الفرعي، لتظهر النتائج الآتية:

Colour Price Year Model Company CarID
Red 25,995 2017 Optima Hybrid KIA 05082
Red 31,900 2018 Stinger KIA 05083
Blue 23,240 2018 Niro KIA 05085
Grey 14,200 2018 Rio 5-Door KIA 05086

معامل BETWEEN

يستخدم لتحديد قيمتي البداية والنهاية لمجال من القيم، ويستخدم معه المعامل AND للوصل ما بين القيمتين.

مثال

لِعرض كافة السيارات التي يقع رقمها التسلسلي في المجال ما بين القيمتين 5081 و 5084 يصبح الاستعلام بالشكل الآتي:

SELECT *
FROM cars
WHERE CarID BETWEEN 5081 AND 5084;

لتظهر النتائج:

Colour Price Year Model Company CarID
White 22,500 2018 Optima KIA 05081
Red 25,995 2017 Optima Hybrid KIA 05082
Red 31,900 2018 Stinger KIA 05083
Black 31,990 2017 Cadenza KIA 05084

التوافقية

SQLServer SQLite Oracle PostgreSQL MySQL
نعم نعم نعم نعم نعم

مصادر