1.سهلة
ماذا تفعل WHERE country IN ('NL', 'BE', 'DE')؟
- Aتُبقي الصفوف التي تحتوي قيمة country فيها على الرموز الثلاثة معًا في آن واحد
- Bتُبقي الصفوف التي لا تكون قيمة country فيها في القائمة
- Cترتّب الصفوف بترتيب القائمة
- Dتُبقي الصفوف التي تساوي قيمة country فيها أي قيمة في القائمة
2.سهلة
ما المفتاح المرشّح (candidate key)؟
- Aمجموعة أعمدة مشتركة بين جدولين لربط صفوفهما
- Bعمود ينتظر أن يصبح مفتاحًا أجنبيًا
- Cأي عمود يحتوي على قيم NULL
- Dأصغر مجموعة من الأعمدة تحدد كل صف بشكل فريد
3.سهلة
كيف تختلف UNION ALL عن UNION؟
- Aترتّب UNION ALL النتيجة
- Bتُبقي UNION ALL الصفوف المكررة
- Cتزيل UNION ALL الصفوف المكررة
- Dلا تعمل UNION ALL إلا على جدول واحد
4.متوسطة
في جدول employees عمود manager_id يشير إلى موظف آخر. كيف تسرد كل موظف بجوار اسم مديره؟
- Aبإنشاء نسخة ثانية من الجدول على القرص
- Bبربط جدول employees بنفسه باستخدام اسمين مستعارين
- Cبدمج الجدول مع نفسه باستخدام UNION ALL ومرشّح WHERE
- Dباستخدام GROUP BY manager_id فقط
5.متوسطة
لماذا تُنشأ الفهارس على الأعمدة؟
- Aلتوفير مساحة القرص
- Bلتسريع عمليات البحث والربط على تلك الأعمدة
- Cلتسريع عمليات الإدراج والتحديث على تلك الأعمدة
- Dلمنع قيم NULL
6.متوسطة
ماذا يُرجع SELECT name, CASE WHEN grade >= 5,5 THEN 'pass' ELSE 'fail' END FROM results؟
- Aعدد الطلاب الناجحين والراسبين
- Bكل اسم مع التسمية 'pass' أو 'fail' بحسب الدرجة
- Cخطأ لأن CASE غير مسموح بها في SELECT
- Dالطلاب الناجحين فقط
7.صعبة
ماذا يُظهر EXPLAIN (أو EXPLAIN ANALYZE في PostgreSQL) لاستعلام ما؟
- Aخطة التنفيذ التي اختارها المُحسِّن، مثل عمليات المسح وطرق الربط
- Bمعنى كل كلمة مفتاحية من SQL في الاستعلام
- Cقائمة المستخدمين الذين نفّذوا الاستعلام
- Dإعادة كتابة للاستعلام بترميز الجبر العلائقي فقط
8.صعبة
بعد customers LEFT JOIN orders، لماذا تُستخدم COUNT(o.id) بدلًا من COUNT(*) لعدّ الطلبات لكل عميل؟
- Aلأن COUNT(*) غير مسموح بها بعد الربط
- Bلأن COUNT(*) تعدّ الصف المملوء بـ NULL على أنه 1 للعملاء الذين لا طلبات لهم
- Cلأن COUNT(*) تتجاهل الصفوف ذات القيم NULL
- Dلأن COUNT(o.id) تعدّ العملاء المميزين فقط
مفتاح الإجابات
- 1. D · تُبقي الصفوف التي تساوي قيمة country فيها أي قيمة في القائمة
- 2. D · أصغر مجموعة من الأعمدة تحدد كل صف بشكل فريد
- 3. B · تُبقي UNION ALL الصفوف المكررة
- 4. B · بربط جدول employees بنفسه باستخدام اسمين مستعارين
- 5. B · لتسريع عمليات البحث والربط على تلك الأعمدة
- 6. B · كل اسم مع التسمية 'pass' أو 'fail' بحسب الدرجة
- 7. A · خطة التنفيذ التي اختارها المُحسِّن، مثل عمليات المسح وطرق الربط
- 8. B · لأن COUNT(*) تعدّ الصف المملوء بـ NULL على أنه 1 للعملاء الذين لا طلبات لهم
حلول كاملة خطوة بخطوة: تدرّب على هذا الموضوع في examproblems.com.