مفهوم الاستعلامات المتداخلة والتعليقات في لغة البرمجة SQL

اقرأ في هذا المقال


مفهوم الاستعلامات المتداخلة في لغة البرمجة SQL

يُعد مفهوم الاستعلامات المتداخلة مهم جداً في لغة البرمجة (SQL)، وهو عبارة عن منطق في العمل يتم تطبيقه واستخدامه عند الحاجة لإجراء إحصاءات محددة على أساسها يتم الحصول على القيم وتعديلها أو حذفها.

والاستعلام العادي الذي لا يحتوي على أي أوامر متداخلة يسمى ب (Query)، أما الاستعلام الذي يحتوي على مجموعة من الأوامر المتداخلة مثل أمر (SELECT)  بداخله أمر (SELECT) آخر فإنه يسمى ب (Sub Query)، أو (Nested Query) أو (Inner Query)، أي أن الاستعلام الفرعي أو الاستعلام المتداخل هو استعلام داخل استعلام (SQL) آخر ومضمن في جملة (WHERE).

ويتم استخدام استعلام فرعي لإرجاع البيانات التي سيتم استخدامها في الاستعلام الرئيسي كشرط لمزيد من تقييد البيانات المراد استردادها، وفيما يلي مثال على استخدام الاستعلامات المتداخلة في جداول (SQL):

SELECT * FROM usersWHERE salary = (SELECTMAX(salary) FROM users);

شروط استخدام الاستعلامات المتداخلة في جداول SQL

هناك مجموعة من الشروط لاستخدام الاستعلامات المتداخلة في لغة البرمجة (SQL) وفما يلي أهمها:
  • يجب وضع الاستعلامات الفرعية أو المتداخلة  داخل أقواس.

  • من الممكن أن يحتوي الاستعلام الفرعي على عمود واحد فقط في عبارة (SELECT)، ما لم تكن هناك أعمدة متعددة في الإستعلام الرئيسي للاستعلام الفرعي لمقارنة أعمدته المحددة.

  • لا يمكن استخدام الأمر (ORDER BY) في الاستعلامات الفرعية، على الرغم من أن الاستعلام الرئيسي يمكن أن يستخدم الأمر (ORDER BY)، ولكن من الممكن استخدام الأمر (GROUP BY) لأداء نفس الوظيفة مثل (ORDER BY) في استعلام فرعي.
  • لا يمكن استخدام الاستعلامات الفرعية التي تُرجع أكثر من صف واحد إلا مع عوامل تشغيل قيم متعددة مثل العامل  (IN).

  • لا يمكن تضمين أي استعلام فرعي على الفور في دالة محددة.

  • من الممكن استخدام الاستعلامات الفرعية مع عبارات (INSERT)، حيث تستخدم عبارة (INSERT) البيانات التي يتم إرجاعها من الاستعلام الفرعي لإدراجها في جدول آخر.

  • من الممكن استخدام الاستعلام الفرعي بالاقتران مع عبارة (UPDATE)، حيث يمكن تحديث أعمدة مفردة أو متعددة في جدول عند استخدام استعلام فرعي مع عبارة (UPDATE).

المصدر: SQL - Sub QueriesSQL SubqueriesSQL | SubquerySQL Subquery


شارك المقالة: