المعامل EXISTS
< SQL
يستخدم المعامل EXISTS
للتأكد من وجود سجلات ناتجة عن الاستعلام الفرعي المستخدم في الاستعلام الرئيسي.
مثال
إن كان في قاعدة البيانات الجدولان الآتيان:
الجدول الأول: جدول الطلاب students
RegDate | CourseID | LastName | FirstName | StudentID |
---|---|---|---|---|
07-JUL-2017 | 0206 | Najjar | Rama | 1147 |
08-NOV-2017 | 0604 | Kordi | Jenan | 1148 |
07-JUL-2017 | 0206 | Bitar | Rahaf | 1149 |
20-AUG-2017 | 0607 | Taweel | Farah | 1150 |
08-NOV-2017 | 0610 | Arab | Rami | 1151 |
24-OCT-2017 | 0803 | Akkad | Aya | 1152 |
08-NOV-2017 | 0504 | Haddad | Abed | 1153 |
20-AUG-2017 | 0801 | Fares | Tasneem | 1154 |
24-OCT-2017 | 0607 | Hamsho | Monther | 1155 |
30-SEP-2017 | 0607 | Abd Allah | Hiba | 1156 |
الجدول الثاني: جدول الدورات التدريبية courses
DepartmentID | Lecturer | Course | CourseID |
---|---|---|---|
EN01 | Dr. Reem Hadi | English (Adv) | 0204 |
EN01 | Dr. Shadi Balid | English (Int) | 0206 |
EN02 | Dr. Firas Abd | English (TOEFL) | 0211 |
IT01 | Eng. Nasser Sharif | Artificial Intelligence | 0604 |
IT01 | Eng. Amal Safi | Networks | 0607 |
IT01 | Eng. Salem Najm | ICDL | 0610 |
IT02 | Eng. Nasser Sharif | SQL Programming | 0703 |
IT02 | Eng. Amal Safi | FrontEnd Programming | 0704 |
IT03 | Mr. Maher Siraj | Photoshop Design | 0801 |
IT03 | Ms. Nadia Taleb | Illustrator Design | 0802 |
IT03 | Mr. Maher Siraj | UI Design | 0803 |
فإن الاستعلام الآتي:
SELECT Course
FROM courses
WHERE EXISTS
(SELECT *
FROM students
WHERE CourseID = courses.CourseID);
يعرض أسماء الدورات التدريبية التي يوجد فيها طالب أو أكثر دون أيّ من الدورات الخالية، أي تظهر الدورات الآتية:
Course |
English (Int) |
Artificial Intelligence |
Networks |
ICDL |
Photoshop Design |
UI Design |
المعامل NOT EXISTS
يعمل بمهمة معاكسة للمعامل EXISTS
أي للتأكد من عدم وجود سجلات ناتجة عن الاستعلام الفرعي المستخدم في الاستعلام الرئيسي.
مثال
إن تنفيذ الاستعلام الآتي:
SELECT Course
FROM courses
WHERE NOT EXISTS
(SELECT *
FROM students
WHERE CourseID = courses.CourseID);
سيعرِض أسماء الدورات التدريبية التي لم يُسجّل فيها أي طالب، لتظهر النتائج:
Course |
---|
English (Adv) |
English (TOEFL) |
SQL Programming |
FrontEnd Programming |
Illustrator Design |
التوافقية
SQLServer | SQLite | Oracle | PostgreSQL | MySQL |
---|---|---|---|---|
نعم | نعم | نعم | نعم | نعم |