طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 122 · برمجة قواعد البيانات
تقييم الدرس 20

الحلقات على النتائج والمؤشرات

أجب عن الأسئلة ثم اضغط «صحّح ورقتي» في آخر الصفحة. ← العودة إلى الدرس

أسئلة التقييم

تقييم الدرس 20: الحلقات على النتائج والمؤشرات. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».

1السؤال الأول: اختر الإجابة الصحيحة

1) ترتيب خطوات المؤشر الصريح:
2) كم سطرًا يطبع هذا الكود؟
query.sql
DO $$DECLARE r record;BEGIN  FOR r IN SELECT name FROM products WHERE category_id = 1 LOOP    RAISE NOTICE '%', r.name;  END LOOP;END $$;
3) c customers%ROWTYPE يعني:
4) ماذا يحدث إن نُسي EXIT WHEN NOT FOUND؟
5) في MySQL يُكتشف انتهاء المؤشر بـ:

2السؤال الثاني: صح أم خطأ

1) حلقة FOR على استعلام تفتح المؤشر وتغلقه تلقائيًّا.
الصواب: صح
2) المؤشر لا يقبل معاملات.
الصواب: خطأ
3) %ROWTYPE موجود في PostgreSQL و Oracle.
الصواب: صح
4) المؤشر الصريح يسمح بالتوقف قبل قراءة كل الصفوف.
الصواب: صح
5) الحلقة على الصفوف أسرع دائمًا من أمر SQL واحد.
الصواب: خطأ

3السؤال الثالث: أكمل الفراغات من القائمة المنسدلة

1) لجلب الصف التالي من المؤشر نكتب cur INTO v;
الإجابة: FETCH
2) المتغير الذي يحمل صفًّا من أي استعلام نوعه .
الإجابة: record
3) بعد الانتهاء من المؤشر نكتب cur;
الإجابة: CLOSE

4السؤال الرابع: أسئلة عملية

1) ما ناتج هذا الكود؟

query.sql
CREATE TABLE t (n int);DO $$DECLARE r record;BEGIN  FOR r IN SELECT id FROM categories LOOP    INSERT INTO t VALUES (r.id * 10);  END LOOP;END $$;SELECT sum(n) FROM t;
الناتج الصحيح:
النتيجة · صف واحد
sum
150

2) ما ناتج هذا الكود؟

query.sql
CREATE TABLE t (s text);DO $$DECLARE cur CURSOR FOR SELECT name FROM customers ORDER BY id; n text;BEGIN  OPEN cur;  FETCH cur INTO n; FETCH cur INTO n;  INSERT INTO t VALUES (n);  CLOSE cur;END $$;SELECT s FROM t;
الناتج الصحيح:
النتيجة · صف واحد
s
خالد
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس