8.8 SQL - EXISTS
جملة SQL EXISTS
جملة EXISTS تُستخدم للتحقق مما إذا كان الاستعلام الفرعي (Subquery) يُرجع أي صفوف (rows).
✅ لو الاستعلام الفرعي بيرجع صف واحد على الأقل → TRUE
❌ لو مفيش نتائج → FALSE
الصيغة:
SELECT column_name(s)
FROM table_name
WHERE EXISTS (
SELECT column_name FROM table_name WHERE condition
);
مثال عملي: عرض العملاء اللي عندهم طلبات
SELECT CustomerName
FROM Customers
WHERE EXISTS (
SELECT OrderID FROM Orders WHERE Customers.CustomerID = Orders.CustomerID
);
⬅ الاستعلام بيرجع فقط العملاء اللي CustomerID بتاعهم موجود في جدول Orders.
شرح مبسط:
EXISTSمش بتهتم إيه اللي بيرجعه الاستعلام الداخلي.- هي بس بتتأكد: هل في أي صف بيرجع؟ لو آه ➜
TRUE
مثال باستخدام NOT EXISTS: عرض العملاء اللي ماعندهمش طلبات
SELECT CustomerName
FROM Customers
WHERE NOT EXISTS (
SELECT OrderID FROM Orders WHERE Customers.CustomerID = Orders.CustomerID
);
مقارنة بين EXISTS و IN:
| العنصر | EXISTS | IN |
|---|---|---|
| الأداء | غالبًا أسرع مع جداول كبيرة | أبطأ لو الاستعلام الداخلي بيرجع عدد كبير |
| التقييم | يتوقف عند أول نتيجة | بيحمّل كل النتائج للمقارنة |
| الاستعمال | مثالي مع SELECT * أو JOIN |
مثالي لو بتقارن مع قائمة قيم ثابتة |
تعليقات
إرسال تعليق