الإستعلامات الفرعية متعددة الصفوف في قواعد البيانات SQL الدرس|12| - Programmer Tech

Programmer Tech

تعلم البرمجة - علوم الكمبيوتر - أمن المعلومات - القرصنة الأخلاقية

إعلان اعلى المقالة

الأحد، 24 يناير 2021

الإستعلامات الفرعية متعددة الصفوف في قواعد البيانات SQL الدرس|12|


الإستعلامات الفرعية متعددة الصفوف

هي إستعلامات فرعية تقوم بإرجاع عدة صفوف من البيانات عند الإشارة لنتيجة الإستعلام الفرعي في العبارة الشرطية لعبارة الإستعلام الرئيسية, و يجب إجراء المقارنة بإستخدام رمز مقارنة متعدد الصفوف (IN ، ALL ، ANY).

  • IN : المساواة بأي قيمة داخل قائمة.
  • ANY : مقارنة قيمة بأي من قيم داخل قائمة.
  • <ANY : معناها أقل من أكبر قيمة داخل قائمة.
  • >ANY : معناها اكبر من أقل قيمة داخل قائمة.
  • ALL : مقارنة قيمة بكل ما هو موجود داخل قائمة.
  • <ALL : معناه أقل من أقل قيمة داخل قائمة.
  • >ALL : معناه اكبر من اعلى قيمة داخل قائمة.
 

الإستعلام المتعدد IN

عرض أسماء و رواتب و ارقام إدارة الموظفين الذين يأخذون رواتب مساوية لأقل راتب في كل إدارة.
SQL> select ename ,sal,deptno
2 from emp 
3 where sal IN (select min(sal) from emp group by deptno);

 

قمنا بإيجاد أقل راتب في إدارة هذا, بعمل إستعلام فرعي يرجع بأقل الرواتب في كل إدارة و هي (800,950,1300) ثم إستخدمنا هذه الرواتب في عرض البيانات بشرط أن يكون الراتب مساوياً لأحد هذه القيم.


ملحوظه على ما سبق 
نتيجة الإستعلام الفرعي عبارة عن مجموعة من القيم تٌمثّل مجموعة من الصفوف و هي أقل راتب في كل إدارة, تم إستخدام المعامل المتعدد (IN) لأننا هنا نقارن الراتب بمجموعة من الصفوف.


الإستعلام المتداخل مع ANY

يقارن هذا العامل بين قيمة تعبير أو قيمة عمود مع كل قائمة من القيم التي تم إرجاعها بواسطة الإستعلام الفرعي, طالما كانت نتيجة المقارنة TRUE يُرجع اختبار ANY القيمة TRUE.

عرض أرقام و أسماء و وظائف و رواتب الموظفين الذين رواتبهم أقل من راتب الموظفين اصحاب الوظيفة (CLERK) دون عرض موظفي الوظيفة.

SELECT ename ,sal, job 
from emp
where sal <any (select SAL from emp where job = 'CLERK') 

في المثال السابق تم عمل إستعلام فرعي لإيجاد رواتب الموظفين المسجلين بالوظيفة (CLERK) و كانت (800 , 950 , 1100 , 1300) ثم إستخدام هذه القيم في الإستعلام الرئيسي لعرض بيانات الموظفين الذين يأخذون رواتب أقل من أي من هذه القيم كما تم إستبعاد الموظفين المسجلين بالوظيفة (CLERK), نُلاحظ أن المعامل (SAL<ANY) معناه بشرط أن يكون الراتب أقل من أكبر قيمة من القيم من القيم (800 , 950,1100, 1300).


الإستعلامات المتداخلة مع الجميع ALL

يقارن بين قيمة تعبير أو قيمة عمود مع كل قائمة من القيم التي تم إرجاعها بواسطة الإستعلام الفرعي, طالما كانت نتيجة المقارنة FALSE يُرجع اختبار ALL FALSE.
 
قم بعرض اسماء و أرقام و رواتب الموظفين الذين رواتبهم اكبر من كل المتوسطات الحسابية للمرتبات في كل إدارة.
SQL>SELECT empno , ename , job , sal
2 FROM emp
3 WHERE sal >ALL(select AVG(sal) from emp group by deptno);
 
لأي إستفسار لديكم لا تترددوا بطرحه علينا في التعليقات او الدخول لمجموعتنا في تلجرام و طرحه هناك, فنحن متواجدون دائماً.
 
رابط مجموعة النقاش في تيلجرام : t.me/Programmer_Tech1

ليست هناك تعليقات:

إرسال تعليق

facebook

نموذج الاتصال

الاسم

بريد إلكتروني *

رسالة *