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

دوال تُرجع جداول: RETURNS TABLE

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

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

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

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

1) أي صيغة تجعل الدالة تُرجع صفوفًا بأعمدة محددة؟
2) ماذا يُرجع هذا الاستعلام؟
query.sql
CREATE FUNCTION nums(n int) RETURNS SETOF int LANGUAGE sql AS $$ SELECT generate_series(1, n) $$;SELECT * FROM nums(3);
3) LATERAL يسمح بـ:
4) MySQL لا يدعم الدوال الجدولية؛ البديل:
5) لماذا لا نسمي أعمدة RETURNS TABLE بأسماء أعمدة الجدول؟

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

1) الدالة الجدولية يمكن ربطها بـ JOIN.
الصواب: صح
2) RETURN NEXT ينهي تنفيذ الدالة.
الصواب: خطأ
3) RETURN QUERY يمكن استخدامه أكثر من مرة في الدالة نفسها.
الصواب: صح
4) RETURNS SETOF products تُرجع صفًّا واحدًا فقط.
الصواب: خطأ
5) في Oracle تُستخدم PIPE ROW في الدوال الجدولية المتدفقة.
الصواب: صح

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

1) لإضافة نتيجة استعلام كاملة إلى مخرجات الدالة نكتب RETURN SELECT …;
الإجابة: QUERY
2) لإرجاع صفوف بأعمدة جدول موجود نكتب RETURNS products
الإجابة: SETOF
3) تُستدعى الدالة الجدولية في جزء من الاستعلام.
الإجابة: FROM

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

1) كم صفًّا يُرجع هذا الكود؟

query.sql
CREATE FUNCTION customers_in(c text)RETURNS TABLE (cid int, cname text, since date)LANGUAGE plpgsqlAS $$BEGIN  RETURN QUERY    SELECT id, name, joined FROM customers WHERE city = c ORDER BY joined;END;$$;SELECT count(*) FROM customers_in('الرياض');
الناتج الصحيح:
النتيجة · صف واحد
count
3

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

query.sql
CREATE FUNCTION evens(n int) RETURNS SETOF int LANGUAGE plpgsql AS $$BEGIN  FOR i IN 1..n LOOP    IF i % 2 = 0 THEN RETURN NEXT i; END IF;  END LOOP;END $$;SELECT sum(e) FROM evens(10) e;
الناتج الصحيح:
النتيجة · صف واحد
sum
30
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».

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