تعلتمنا في الدرس
السابق استخدام الاستعلام في التطبيق و
هذه أهم نقطة في لغة الاستعلام، والان
سنتعلم تطبيق متقدم في لغة الاستعلام و هو
الاستعلام من اكثر من جدول ، عندما نقول
الاستعلام من اكثر من جدول نقصد مثلا ان
يطلب منا الاستعلام عن الاشخاص الذين
يعملون ضمن قسم المحاسبة ، الشرط
هنا هو العمل في قسم المحاسبة لكن الشرط
غير موجود في الجدول ؟ اذا كيف سنقوم
بالاستعلام ؟ سنقوم بالاستعلام عن الشرط
من جدول اخر ثم نرجع النتيجة و يستعلم في
الاستعلام الاساسي عليها و بذلك يكون
لدينا استعلامين ،و لكن يجب أن يكون
هناك حقل مشترك بين الجدولين ، سيتضح
كل ذلك في السطور التالية
الدرس
قبل أن نبدأ افرض
أن لدينا الجدولين التاليين :
tb1
tb2
name
sal
job
deptno
جميل
6000
محاسب
3
سامي
12000
مدير
1
بدر
5500
مبرمج
2
مهند
8500
مهندس
1
صالح
5000
سكرتير
3
deptn
deptname
1
الهندسة
2
الكمبيوتر
3
المحاسبة
نريد
الاستعلام عن أسماء الموظين الذين
ينتمون لقسم ما و لنفرض اننا نريد من
ينتمي لقسم الهندسة، ستكون صيغة
الاستعلام على الشكل التالي "
حدد حقل الاسم منالجدول tb1 عندما
يكون اسم القسم الهندسة " ، لكن
هناك مشكلة حيث لا يوجد حقل باسم القسم
في نفس الجدول لكن يوجد اسم القسم في
جدول اخر، ويوجد في الجدول الذي لدينا رقم
القسم لكننا نريد البحث على اساس اسم
القسم و ليس رقمه ، اذا يجب ان
نحصل على اسم القسم من الجدول الاخر
، وللحصول على معلومات من جدول اخر يجب
تحقق شرط مهم و هو وجود حقل مشترك بين
الجدولين و هذا ينطبق في حالتنا ،
اذا ستكون صيغة الاستعلام على الشكل
التالي : " حدد حقل الاسم
من الجدول tb1 عندما يكون اسم القسم يساوي (حدد
اسم القسم من الجدول tb2 عندما
يكون رقم القسم1) "
هكذا وضعنا الاستعلام بالصورة
المطلوبة حيث كنا نفتقد للشرط في
الاستعلام الاول لعدم وجوده في نفس
الجدول لذا قمنا بعمل استعلام اخر
فرعي لكي نحصل منه على الشرط ، الان دعونا
نتعلم كيف نكتب ما قلناه منذ قليل
بلغة الاستعلام :
SQL = "select
name from Tb1 where
deptname = (select deptname form tb2 where deptno = 1) "
قد تتسائل
لماذا نقوم بهذه العملية الطويلة مع
أنه بإمكاننا ان نشترط شرط على اساس رقم
القسم الذي يتوفر لدينا حيث نعرف ان
قسم الهندية يحمل الرقم 1 ؟ الجواب و بكل
بساطة أنه ليس في كل مرة ستعرف ذلك حيث
يوجد استعلامات معقدة لايمكنك بأن تقوم
بحساب الشرط بنفسك لكي تضع استعلام
واحد ، حيث ان بعض التطبيقات يجب عليك
فيها استخدام الاستعلام المركب و قد يصل
لأكثر من استعلام لحل و ايجاد قيمة
استعلام واحد
في
الاستعلام المتفرع من استعلام لانضع
علامتي تنصيص مزدوجة على الشرط النصي
بل نضع علامة تنصيص مفردة مثل هذه '
لم أجعل
هذا الدرس طويل ولم اضف اليه نقاط اخرى
لاعتقادي بأنه من اهم الدروس في لغة
الاستعلام و يستحق أن يفرد له درس خاص ،
اذا كان هناك غموض في هذا الدرس او
الدرس السابق ارجو عدم التردد و ارسال
رأيك و شكواك على بريدي الاكتروني