يمكنكم الاطلاع على الدروس السابقة من هنا
تعرفنا في الدروس السابقة ان الاستعلام عن اكثر
من جدول باستخدام الاستعلامات الفرعية وقد وفر مميزات وقدرات جيدة على معالجة
البيانات ولكن هذه القدرات قد لا تمكننا من الحصول على كل النتائج التي نحتاجها
كما ان الصيغة قد تصبح صعبة الفهم بعض الشيء وقد تؤدي الى انخفاض في مستوى الاداء
احياناً
ان لغة SQL توفر
امكانية الاستعلام عن جداول متعدده في وقت واحد باستخدام صيغة ابسط نسميها الربط.
لا تستطيع الصيغة الجديدة استبدال كل التقنيات
التي تؤمنها الاستعلامات الفرعية ولكنها تمثل الحل الامثل في بعض الحالات وخاصة في
الاستعلامات التي تربط بين سجلات من جداول مختلفة .
نبدأ فيما يلي عرض حالات الربط البسيطة لنصل
بعدها الى حالات اكثر تعقيداً:
الربط البسيط .
الربط بالتساوي .
الربط بعدم المساواه.
الربط الخارجي .
اذن ناخذ بالتفصيل الان انواع الربط
اولا الربط البسيط :
الربط البسيط هو استعلام عن اكثر من جدول في صيغة
واحدة دون استعمال أي شرط
ان ابسط صيغة للتعبير عن الربط البسيط هي :
Select
Table1.Column1, Table2.Column2 from Table1, Table2;
مثلا لو فكرنا في استعمال هذه الصيغة في جلب اسم
ووصف كل طالب من الجدولين Names,Classes اول ما سيحضر الى اذهاننا هو كتابة الصيغة
التالية :
Select class, Name
from Classes, Names;
الصيغة السابقة استخدمنا فيها الربط البسيط ولكن
للأسف لن تعيد لنا النتيجة التي طلبناها او التي نحتاجها .
ولذلك إن آلية عمل
الربط البسيط في
حال عدم وجود
أي شرط مرافق
هي عبارة عن
عملية جداء ديكارتي لقيم الحقول المحددة من الجدولين.
فإذا كانت قيم
الحقل المطلوب من
الجدول الأول هي {A,
B, C} وقيم الحقل
المطلوب من الجدول الثاني هي {D, E, F}
فسيكون
عدد القيم المعادة 9 قيم
هي التالية:
{(A,D), (A,E), (A,F), (B,D), (B,E), (B,F),
(C,D), (C,E), (C,F)}
مثلاً إذا كان لدينا
100 سجل
في كل من
الجدولين المربوطين ربطًا
بسيطًا سنحصل على
10000 سجل
يعيدها
استعلام الربط البسيط.
يسمى
استعلام الربط البسيط أيضًا بالربط المتصالب. ويمكن
التعبير عن نفس
صيغة الربط السابقة، بالصيغة:
Select
Table1.Column1, Table2.Column2 from Table1 Cross Join Table2;
مثال :
كيميائي يريد اختبار تأثير
مجموعة من المواد الكيميائية على
مجموعة من المنتجات التي تصنعها الشركة التي
يعمل فيها فإذا كانت اسماء
المنتجات productName
مدرجة في جدول اسمة Products
واسماء المواد المراد اختبار تأثيرها materialName مدرجة في جدول اسمة ChemicalEffects
المطلوب مساعدة هذا الكيميائي في تجهيز لائحة الاختبارات : اذن سيكون الحل كالتالي
/
Select productName,
materialName from Products, ChemicalEffects;
او
Select productName,
materialName from Products Cross Join
ChemicalEffects;
انتبة : لا تدعم
قواعد البيانات DB2 التعبير Cross Join
.
اكتفي بهذا القدر ونلتقي في التدوينة
القادمة ان شاء الله والتي ستكون بعنوان الربط بالتساوي .
اشكرك على حسن الزيارة واتمنى ان تكون قد
استفدت شي من موقعنا هذا ...
ولا تنسى الاشتراك في المدونة حتي يصل اليك
اشعار بكل جديد نقوم بنشرة او قم بتحميل تطبيقنا على جهازك ستجدة في حسابي في
الدروب بوكس لم اقم بعد باضافتة الى جوجل بلاي
او الاعجاب بصفحتنا على الفيس بوك فنحن
نقوم بنشر كل جديد فيها ايضاً
استودعك الله ودمت بألف خير عزيزنا ....
إرسال تعليق
لا تبخل علينا باقتراحك او قم بمشاركة الموضوع ليستفيد الاخرين ايضاً شكرا لزيارتك عزيزي الزائر