استعلامات SQL هي اللحوم والبطاطس لـ RDBMS CRUD (إنشاء ، قراءة ، تحديث ، حذف). ولكن عندما ينمو تطبيقك أو قاعدة بيانات مؤسستك ، تصبح الحاجة إلى استعلامات ذكية لاسترداد البيانات الشرطية الخاصة بالمتطلبات أمرًا ضروريًا.

تعتبر SQL شاملة نسبيًا ، وتحتوي على العديد من الوظائف - كل منها مناسب تمامًا لاستخدامات الأعمال المختلفة. تتضمن إحدى هذه الوظائف استخدام الاستعلامات الفرعية.

لجعل أكوادك فعالة وفعالة ، يمكنك استخدام الاستعلامات الفرعية ضمن أكواد SQL الخاصة بك لجلب البيانات ومعالجة المتغيرات الحالية وتحقيق أهداف متعددة دفعة واحدة.

ما هي استعلامات SQL الفرعية؟

الاستعلام الفرعي هو استعلام متداخل يعمل كمعامل داخل استعلام رئيسي آخر. الاستعلام الفرعي هو ملف الاستعلام الداخلي ، بينما الاستعلام الرئيسي هو الاستعلام الخارجي.

من المفترض أن يقوم الاستعلام الفرعي بإرجاع البيانات كوسيطة بين قوسين للاستعلام الرئيسي ، بينما يقوم الاستعلام الرئيسي باسترداد النتيجة النهائية.

يتم تضمين الاستعلامات الفرعية داخل ملف يختار بيان أو في أين بند. يسمح هذا الهيكل للاستعلام الفرعي بالتصرف كشرط لترشيح البيانات الموصوف جيدًا. لسوء الحظ ، لا يمكن للاستعلامات الفرعية سوى استخدام امتداد

instagram viewer
مجموعة من أوامر وليس ترتيب حسب الأوامر ، حيث يُسمح بها في الاستعلام الرئيسي فقط.

متعلق ب: كل ما تحتاج لمعرفته حول بيان SQL GROUP BY

عادة ، يتكون كل استعلام فرعي من عمود واحد بامتداد يختار بند. ومع ذلك ، هناك سيناريوهات يحتوي فيها الاستعلام الرئيسي على أعمدة متعددة. يمكن أن يتداخل الاستعلام الفرعي مع استعلام فرعي آخر ، مما يجعله متداخلاً في استعلام فرعي متداخل.

تكون قيود الاستعلام الفرعي كما يلي:

حدد اسم_العمود من الجدول حيث الشرط = 
(حدد conditional_column من الجدول) كاسم مستعار ؛

على سبيل المثال ، افترض أن لديك الجدول التالي:

بطاقة تعريف الاسم الاول الاسم الثاني رسوم الوكالة
1 يوحنا ذبالة 5000
2 روبرت جراهام 4000
3 ستيفن هيكس 8000
4 بوب مارلي 1000
5 ماري إلين 9000

في هذا الجدول ، لسحب أسماء الأشخاص الذين يتقاضون ربحًا أعلى من متوسط ​​رسوم الوكالة ، يمكنك كتابة استعلام فرعي ، بدلاً من كتابة أسطر متعددة من التعليمات البرمجية.

متعلق ب: كيفية إنشاء جدول في SQL

إليك كيف يبدو الاستعلام:

حدد * من agent_details
حيث Agency_Fee> (حدد avg (Agency_Fee) من agent_details) ؛

الأمر قبل > الإشارة هي الاستعلام الخارجي ، بينما كل شيء بعد > العلامة هي الاستعلام الداخلي.

سيحسب الاستعلام الداخلي متوسط ​​رسوم الوكالة داخل الاستعلام الفرعي ، وسيعرض الاستعلام الخارجي جميع القيم الأكبر من متوسط ​​القيمة المحسوبة.

كيفية استخدام الاستعلامات الفرعية في SQL؟

هناك عدة طرق مختلفة يمكنك من خلالها استخدام الاستعلامات الفرعية في SQL.

الاستعلامات الفرعية مع شرط أين

واحدة من أبسط الهياكل للاستعلام الفرعي في SQL هي ضمن جملة Where. إنها أبسط طريقة لتحديد ما تبحث عنه. تعرض عبارة select القيم وفقًا لشرط (شروط) الاستعلام الفرعي وتستخدمها كمعامل للاستعلام الرئيسي.

بنية الاستعلام:

حدد * من table_name
حيث column_name = (حدد اسم العمود من اسم_الجدول) ؛

دعونا نشرح هذا بمثال.

لنفترض أنك تريد العثور على ثاني أعلى رسوم وكالة من جدول Agency_details. للقيام بذلك ، هناك وظائف بديلة داخل SQL ؛ ومع ذلك ، فإن أفضل طريقة هي استخدام استعلام فرعي.

إليك كيف يمكنك تحديد الاستعلام الفرعي:

حدد * ، بحد أقصى (Agency_fee)
من تفاصيل الوكيل
حيث Agency_fee

سيظهر لك البيان الناتج 8000، وهي ثاني أعلى رسوم في الجدول المحدد. عند تشغيل الاستعلام ، يقوم الاستعلام الفرعي بحساب القيمة القصوى من قائمة الرسوم. أعلى مبلغ رسوم (9000) في الذاكرة.

بمجرد حساب هذا الجزء ، يتم حساب الجزء الثاني من الاستعلام ، والذي يجد ثاني أعلى رسم من الجدول (منذ < يستخدم علامة). النتيجة النهائية هي 8000، وهو ثاني أعلى رسم في الجدول.

الاستعلامات الفرعية ضمن بند من

هناك اختلاف آخر داخل الاستعلامات الفرعية وهو تمرير الشرط في ملف من بند. كمفهوم مشابه ، تتم معالجة الاستعلام الداخلي أولاً ، ثم تتم معالجة الاستعلام الخارجي بعد ذلك. سيقوم الاستعلام الداخلي بتصفية البيانات وإظهار النتائج حيث المعرف = 3.

إليك الاستعلام كمرجع:

حدد أ. * من (
حدد Agency_fee من agent_details
حيث المعرف = 3) باعتباره أ ؛

هذا هيكل أساسي للغاية ؛ ومع ذلك ، كلما كانت جداول البيانات أكثر تعقيدًا ، ستحصل على المزيد من صفوف البيانات التي تتوافق مع شروطك.

استخدام الاستعلامات الفرعية مع إدراج في بيان

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

بنية الاستعلام:

إدراج في table_name 
حدد * من table_name
حيث اسم العمود = الشروط ؛
حدد * من table_name ؛

فيما يلي مثال على كيفية استخدام الإدراج في العبارة مع الاستعلام الفرعي:

إدراج في agent_details
حدد * من agent_details
حيث Agency_fee في (1000 ، 5000) ؛
حدد * من agent_details ؛

بمجرد تشغيل الاستعلام ، سيتم إدراج القيم المطابقة للشرط في الجدول الموجود مرة أخرى. ال تحديد * يقوم المرجع بالتقاط جميع الأعمدة معًا وإدراجها في جدول agent_details كما هي. ال في يتم استخدام العبارة لتحديد شروط تصفية متعددة في وقت واحد.

استخدام الاستعلامات الفرعية مع بيان التحديث

هناك حالات تريد فيها تحديث الجداول الأساسية أثناء تشغيل الاستعلامات. للقيام بذلك ، يمكنك استخدام تحديث بيان مع أوامر الاستعلام.

هذه هي الطريقة التي ستكتب بها الاستعلام الفرعي لتحديث المعلومات الموجودة في الجدول في حالة واحدة:

تحديث table_name 
تعيين اسم العمود = new_value
حيث اسم العمود =
(حدد اسم العمود من اسم_الجدول حيث =) ؛

فيما يلي مثال يوضح استخدام بيان التحديث:

تحديث agent_details 
تعيين Agency_fee = 35000
حيث Agency_fee =
(حدد Agency_fee FROM agent_details WHERE First_name = 'John') ؛
حدد * من agent_details ؛

سيعمل طلب البحث الفرعي على تصفية العمود agency_fee ويفرد الصف (الصفوف) حيث يتطابق الاسم_الأول يوحنا. يتم تنفيذ الاستعلام الخارجي بعد ذلك ، حيث يتم تحديث رسوم الوكالة إلى 35000 لجون ويك.

يمكنك تمرير ملف تحديد * بيان للتحقق من النتائج النهائية ؛ ستلاحظ أن رسوم الوكالة الخاصة بجون ويك قد تم تحديثها إلى 35000 ، حيث لا يوجد سوى مثيل مطابق للشروط المحددة في الاستعلام.

استخدام الاستعلامات الفرعية مع عبارة الحذف

تمامًا مثل بيان التحديث ، حيث تقوم بتحديث صفوف البيانات داخل جدول موجود ، فإن ملف حذف البيان يحذف صف (صفوف) البيانات بناءً على شرط.

هيكل بيان الحذف هو:

حذف من table_name حيث المتغير / اسم العمود = 
(حدد اسم العمود من اسم_الجدول حيث = الحالة) ؛

هذا مثال:

حذف من agent_details 
حيث First_name IN
(حدد الاسم الأول من agent_details حيث Agency_fee = 9000) ؛
حدد * من agent_details ؛

استخدام الاستعلامات الفرعية داخل SQL

تعد الاستعلامات الفرعية ميزة ممتازة في SQL ، والتي يمكن أن توفر عليك كتابة أسطر لا نهاية لها من التعليمات البرمجية غير الضرورية. عندما تكون قادرًا على استخدام الوظائف الأساسية للاستعلامات الفرعية للقيام بالمزايدة الخاصة بك ، فلن ترغب أبدًا في القلق بشأن الدخول في تعقيدات ترميز SQL.

من الأفضل دائمًا تحسين معرفتك بـ SQL الحالية للتأكد من أنك دائمًا في صدارة اللعبة. كن مطمئنًا ، يمكن أن تمنحك أوراق الغش في SQL فكرة جيدة عن كيفية تحسين الأساسيات في لمحة واحدة.

ورقة الغش في أوامر SQL الأساسية للمبتدئين

هل تريد معرفة المزيد عن SQL؟ يعد التعامل مع أوامر استعلام SQL المختلفة طريقة رائعة للمضي قدمًا.

اقرأ التالي

شاركسقسقةبريد الالكتروني
مواضيع ذات صلة
  • برمجة
  • برمجة
  • SQL
  • أدوات البرمجة
عن المؤلف
غوراف سيال (تم نشر 35 مقالة)

يتمتع Gaurav Siyal بخبرة عامين في الكتابة ، ويكتب لسلسلة من شركات التسويق الرقمي ووثائق دورة حياة البرامج.

المزيد من Gaurav Siyal

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك