زهرة الربيع عضو نشــط
عدد المساهمات : 36 نقاط : 86 السٌّمعَة : 0 تاريخ التسجيل : 17/05/2009
| موضوع: (3) لغة الإستفسارات SQL الأربعاء مايو 20, 2009 1:28 pm | |
| قبل أن نبدأ افرض أن لدينا الجدولين التاليين : | tb1 tb2name |
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 ؟ الجواب و بكل بساطة أنه ليس في كل مرة ستعرف ذلك حيث يوجد استعلامات معقدة لايمكنك بأن تقوم بحساب الشرط بنفسك لكي تضع استعلام واحد ، حيث ان بعض التطبيقات يجب عليك فيها استخدام الاستعلام المركب و قد يصل لأكثر من استعلام لحل و ايجاد قيمة استعلام واحد | في الاستعلام المتفرع من استعلام لانضع علامتي تنصيص مزدوجة على الشرط النصي بل نضع علامة تنصيص مفردة مثل هذه ' | لم أجعل هذا الدرس طويل ولم اضف اليه نقاط اخرى لاعتقادي بأنه من اهم الدروس في لغة الاستعلام و يستحق أن يفرد له درس خاص ، اذا كان هناك غموض في هذا الدرس او الدرس ا |
| |
|