ورقة عمل قواعد البيانات و SQL مع الإجابات

ورقة عمل مجانية قابلة للطباعة في قواعد البيانات و SQL: 8 مسألة من السهل إلى مستوى الامتحان، مع مفتاح الإجابات. اطبعها أو احفظها بصيغة PDF.

للمعلمين: يمكن طباعتها ونسخها واستخدامها في الصف مجانًا. كل ورقة عمل جديدة لها قيم جديدة ومفتاح إجابات خاص بها. نقدّر إضافة رابط إلى ExamProblems في صفحة مقررك.

الاسم: ____________________   التاريخ: ____________

1.سهلة

ما المفتاح البديل (surrogate key)؟

  1. Aمفتاح مأخوذ من بيانات واقعية مثل عنوان البريد الإلكتروني
  2. Bمفتاح لا يُستخدم إلا في العروض (views)
  3. Cمعرّف اصطناعي لا معنى تجاريًا له، مثل معرّف يتزايد تلقائيًا
  4. Dمفتاح يشير إلى جدول آخر
2.سهلة

إلى أي جزء من SQL تنتمي GRANT وREVOKE؟

  1. Aلغة استعلام البيانات (DQL)
  2. Bلغة معالجة البيانات (DML)
  3. Cلغة تعريف البيانات (DDL)
  4. Dلغة التحكم في البيانات (DCL)
3.سهلة

أي صفوف تختار WHERE price BETWEEN 10 AND 20؟

  1. Aالصفوف التي سعرها خارج المدى من 10 إلى 20
  2. Bالصفوف التي سعرها أعلى من 10 وأقل من 20، باستثناء 10 و20
  3. Cالصفوف التي سعرها من 10 إلى 20، بما في ذلك 10 و20
  4. Dالصفوف التي سعرها يساوي 10 أو 20 فقط
4.متوسطة

يحتوي عمود على القيم 10 و20 وNULL. ماذا تُرجع AVG(col)؟

  1. ANULL
  2. B30
  3. C10
  4. D15
5.متوسطة

ماذا تُرجع INTERSECT عند استخدامها بين استعلامين SELECT؟

  1. Aالصفوف الموجودة في النتيجتين كلتيهما
  2. Bجميع الصفوف من النتيجتين
  3. Cالصفوف الموجودة في النتيجة الأولى دون الثانية
  4. Dالضرب الديكارتي للنتيجتين
6.متوسطة

لماذا يفشل SELECT price * 2 AS double_price FROM t WHERE double_price > 10 في معظم قواعد البيانات؟

  1. Aلأن WHERE لا تقارن إلا أعمدة النصوص
  2. Bلأن WHERE تُقيَّم قبل قائمة SELECT، فلا يكون الاسم المستعار موجودًا بعد
  3. Cلأن العمليات الحسابية غير مسموح بها في قائمة SELECT
  4. Dلأن الأسماء المستعارة لا يجوز أن تحتوي على شرطة سفلية
7.صعبة

ماذا تشترط قاعدة التسجيل المسبق للسجل (write-ahead logging, WAL)؟

  1. Aيجب تسجيل كل استعلام قبل تحليله
  2. Bيجب كتابة صفحات البيانات قبل السجل
  3. Cيجب أن يصل سجل التغيير إلى التخزين المستقر قبل أن تصل صفحة البيانات المتغيرة
  4. Dلا يُكتب السجل إلا بعد التعطل
8.صعبة

بعد customers LEFT JOIN orders، لماذا تُستخدم COUNT(o.id) بدلًا من COUNT(*) لعدّ الطلبات لكل عميل؟

  1. Aلأن COUNT(*) تعدّ الصف المملوء بـ NULL على أنه 1 للعملاء الذين لا طلبات لهم
  2. Bلأن COUNT(*) تتجاهل الصفوف ذات القيم NULL
  3. Cلأن COUNT(o.id) تعدّ العملاء المميزين فقط
  4. Dلأن COUNT(*) غير مسموح بها بعد الربط

مفتاح الإجابات

  1. 1. C · معرّف اصطناعي لا معنى تجاريًا له، مثل معرّف يتزايد تلقائيًا
  2. 2. D · لغة التحكم في البيانات (DCL)
  3. 3. C · الصفوف التي سعرها من 10 إلى 20، بما في ذلك 10 و20
  4. 4. D · 15
  5. 5. A · الصفوف الموجودة في النتيجتين كلتيهما
  6. 6. B · لأن WHERE تُقيَّم قبل قائمة SELECT، فلا يكون الاسم المستعار موجودًا بعد
  7. 7. C · يجب أن يصل سجل التغيير إلى التخزين المستقر قبل أن تصل صفحة البيانات المتغيرة
  8. 8. A · لأن COUNT(*) تعدّ الصف المملوء بـ NULL على أنه 1 للعملاء الذين لا طلبات لهم

حلول كاملة خطوة بخطوة: تدرّب على هذا الموضوع في examproblems.com.