الاستعلامات الفرعية العددية والصفية والجدولية
استخدم استعلامات فرعية تُرجع قيمة واحدة أو صفًا واحدًا أو جدولًا كاملًا، وضعها في عبارات SELECT وFROM وWHERE.
الاستعلامات الفرعية العددية والصفية والجدولية درس مجاني في SQL Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SQL Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SQL Academy 4 دروس في المجموع.
ما الاستعلام الفرعي؟
الاستعلام الفرعي هو عبارة SELECT داخل عبارة SQL أخرى. ويمكن أن يكون:
- استعلامًا فرعيًا مفرد القيمة — يُرجع قيمة واحدة
- استعلامًا فرعيًا للصف — يُرجع صفًا واحدًا
- استعلامًا فرعيًا للجدول — يُرجع علاقة (تُستخدم في FROM)
الاستعلام الفرعي مفرد القيمة
يُستخدم حيثما يُتوقع الحصول على قيمة واحدة:
SELECT id, total,
total - (SELECT AVG(total) FROM orders) AS diff_from_avg
FROM orders
WHERE created_at >= NOW() - INTERVAL '30 days';الاستعلام الفرعي للصف
يُرجع صفًا واحدًا يتكون من أعمدة متعددة. وهو أقل شيوعًا، ويُستخدم غالبًا مع مُنشئات الصفوف:
SELECT *
FROM orders
WHERE (status, country) = (
SELECT status, country FROM orders WHERE id = 1
);الاستعلام الفرعي للجدول في FROM
عامِلوا نتيجة الاستعلام كأنها جدول مؤقت:
SELECT country, AVG(big_order_total) AS avg_big
FROM (
SELECT country, total AS big_order_total
FROM orders
WHERE total > 1000
) AS sub
GROUP BY country;إسناد أسماء مستعارة إلى الاستعلامات الفرعية في FROM
يتطلب كل استعلام فرعي في FROM اسمًا مستعارًا في PostgreSQL — حتى إذا لم تستخدموه:
SELECT * FROM (SELECT 1) sub; -- "sub" requiredالاستعلامات الفرعية في WHERE
صفّوا النتائج باستخدام مجموعة مشتقة من القيم:
SELECT * FROM users
WHERE id IN (
SELECT user_id FROM orders WHERE total > 100
);EXISTS / NOT EXISTS
اختبروا ما إذا كان الاستعلام الفرعي يُرجع صفًا واحدًا على الأقل:
SELECT * FROM users u
WHERE EXISTS (
SELECT 1 FROM orders o WHERE o.user_id = u.id
);الاستعلامات الفرعية في SELECT
ضمّنوا استعلامًا فرعيًا مفرد القيمة لكل صف:
SELECT id, full_name,
(SELECT COUNT(*) FROM orders o WHERE o.user_id = u.id) AS order_count
FROM users u;
-- Often readable, but a LEFT JOIN + GROUP BY is usually faster.الاستعلامات الفرعية بوصفها تعبيرات
يُعد الاستعلام الفرعي مفرد القيمة الذي يُرجع أكثر من صف خطأً:
SELECT (SELECT email FROM users);
-- ERROR: more than one row returned by a subquery used as an expressionمتى تعيدون صياغة الاستعلام إلى JOIN
يمكن إعادة كتابة كثير من تعبيرات «x IN (SELECT...)» باستخدام JOIN. اختاروا الصيغة الأسهل قراءة؛ فكثيرًا ما تنتج المخططات الحديثة الخطة نفسها.
الاستعلامات الفرعية مقابل CTEs
إذا احتجتم إلى الاستعلام الفرعي نفسه مرتين، فامنحوه اسمًا باستخدام CTE — وسيتناول الدرس التالي ذلك.
مراجعة
تأتي الاستعلامات الفرعية في ثلاثة أنواع.
- مفردة القيمة في SELECT أو WHERE
- للصف في اختبارات المساواة
- للجدول في FROM
- EXISTS لاختبارات «وجود أي تطابق»
تحقق سريع
أي شكل من الاستعلامات الفرعية يُستخدم داخل عبارة FROM بوصفه جدولًا مؤقتًا؟
الأسئلة الشائعة
هل درس «الاستعلامات الفرعية العددية والصفية والجدولية» مجاني؟
نعم — نص درس «الاستعلامات الفرعية العددية والصفية والجدولية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SQL Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SQL Academy 4 دروس في المجموع.
ماذا ستتعلم في «الاستعلامات الفرعية العددية والصفية والجدولية»؟
استخدم استعلامات فرعية تُرجع قيمة واحدة أو صفًا واحدًا أو جدولًا كاملًا، وضعها في عبارات SELECT وFROM وWHERE. تتمرن على SQL Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ SQL Academy؟
لا تُشترط خبرة سابقة. SQL Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «الاستعلامات الفرعية العددية والصفية والجدولية»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس SQL Academy هذا؟
نعم. كل درس في SQL Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الاستعلامات الفرعية العددية والصفية والجدولية
- الاستعلامات الفرعية المترابطة وغير المترابطة
- تعبيرات الجداول الشائعة (WITH)
- CTEs متكررة للتدرجات الهرمية