المعامل EXISTS
< SQL
اذهب إلى التنقل
اذهب إلى البحث
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
يستخدم المعامل 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 |
---|---|---|---|---|
نعم | نعم | نعم | نعم | نعم |