تحديد مجال أو عدد محدّد من القيم في 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 |
---|---|---|---|---|
نعم | نعم | نعم | نعم | نعم |
مصادر
- توثيق معامل IN في محرك SQL Server
- توثيق معامل IN في محرك SQLite
- توثيق معامل IN في محرك Oracle
- توثيق معامل IN في محرك PostgreSQL
- توثيق معامل IN في محرك MySQL
- توثيق معامل BETWEEN في محرك SQL Server
- توثيق معامل BETWEEN في محرك SQLite
- توثيق معامل BETWEEN في محرك Oracle
- توثيق معامل BETWEEN في محرك PostgreSQL
- توثيق معامل BETWEEN في محرك MySQL