الفرق بين الانضمام الداخلي والانضمام الخارجي في SQL

مؤلف: Laura McKinney
تاريخ الخلق: 2 أبريل 2021
تاريخ التحديث: 12 قد 2024
Anonim
SQL SERVER 2017 TUTORIAL : PART 07 (RELATION & JOIN)
فيديو: SQL SERVER 2017 TUTORIAL : PART 07 (RELATION & JOIN)

المحتوى


الانضمام الداخلي والانضمام الخارجي كلاهما أنواع الانضمام. انضمام يقارن ويجمع tuples من اثنين من العلاقات أو الجداول. تحدد Inner Join الصلة الطبيعية ، على سبيل المثال ، إذا كتبت جملة Join بدون كلمة أساسية Inner داخلية ، فإنها تقوم بتنفيذ عملية الربط الطبيعية. الفرق المحتمل بين الانضمام الداخلي والانضمام الخارجي هو ذلك صلة داخلية إرجاع فقط tuples مطابقة من كل من الجدول و الانضمام الخارجي إرجاع جميع tuples من كلا الجدولين المقارن. دعونا نناقش بعض الاختلافات الأخرى بين Inner Join و Outer Join مع مساعدة من مخطط المقارنة الموضح أدناه.

  1. رسم بياني للمقارنة
  2. تعريف
  3. الاختلافات الرئيسية
  4. خاتمة

رسم بياني للمقارنة

أساس للمقارنةصلة داخليةالانضمام الخارجي
الأساسيانضمام داخلي يخرج فقط tuples مطابقة من كلا الجدول.يعرض الانضمام الخارجي جميع المجموعات من كلا الجدولين.
قاعدة البياناتالحجم المحتمل لقاعدة البيانات التي أرجعها Inner Join أصغر نسبيًا من الصلة الخارجية.صلة خارجية بإرجاع قاعدة بيانات أكبر نسبياً.
أنواعلا أنواع.ترك صلة خارجية،
الانضمام الخارجي الصحيح ،
والانضمام الخارجي الكامل.


تعريف الانضمام الداخلي

ويشار إلى الانضمام الداخلي أيضًا باسم Natural Join. يقارن Inner Join بين جدولين ويجمع بين tuple المطابق في كلا الجدولين. يُطلق عليه أيضًا النوع الافتراضي من الصلة ، حيث يتم كتابة جملة Join بدون الكلمة الأساسية الداخلية التي تؤديها الصلة الطبيعية. إذا تمت كتابة جملة Join بدون الكلمة الأساسية الخارجية ، فسيتم أيضًا تنفيذ الصلة الداخلية.

يمكن شرح الانضمام الداخلي بمثال. هناك جدولان لجدول الطلاب وجدول القسم. الآن يتيح لنا أن نفهم ماذا ينفذ الانضمام الداخلية.

SELECT Name، Sem، Deparment_name FROM Student INNER JOIN Department ON Student.Department_ID = Department.ID.

يمكنك أن ترى أنه يتم الحصول على هذه التلاميذ فقط في النتيجة التي يكون فيها Student.Department_ID = Department.ID. ومن ثم ، يمكننا القول أن Inner Join يجمع فقط المجموعة المطابقة لجدولين.


تعريف صلة الخارجي

بخلاف "الانضمام الداخلي" ، فإن هذه المجموعات فقط هي المخرجات التي لها نفس قيم السمات في كلا الجدولين المقارنين ؛ صلة خارجية إخراج جميع tuples من كلا الجدول. الانضمام الخارجي هو من ثلاثة أنواع ترك صلة خارجية, الحق في الانضمام الخارجيو صلة خارجية كاملة.

دعونا نفهمها واحدة تلو الأخرى. أولاً ، دعنا نأخذ Left Outer Join.

حدد الاسم ، Department_name من الطالب ، اليسار ، قسم الانضمام الخارجي ، الطالب ، قسم = معرف_المعيار.

يمكنك أن ترى أن جميع التلاميذ من جدول الطلاب يتم عرضها في النتيجة.

حدد الاسم ، Department_name من القسم ، الجهة الخارجية ، انضم إلى الطالب ، الطالب. قسم_ معرف = Depoartment.ID.

يمكنك أن ترى أن جميع tuples من جدول القسم يتم عرضها.

حدد Name، Department_name From Student Full Outer Join Department ON Student.Department_ID = Depoartment.ID.

يمكنك ملاحظة أنه يتم عرض جميع التلاميذ من كلا الجدولين في النتيجة.

  1. يتمثل الاختلاف الأساسي بين "الانضمام الداخلي" و "الانضمام الخارجي" في أن الصلة الداخلية تقارن وتتكامل فقط مع التلاميذ المطابقين من بين الجداول. من ناحية أخرى ، فإن المقارنة الخارجية تربط وتجمع بين كل الصفوف من كلا الجدولين قيد المقارنة.
  2. حجم قاعدة البيانات للنتيجة التي تم الحصول عليها من الانضمام الداخلي أصغر من "صلة خارجية".
  3. هناك ثلاثة أنواع من الصلة الخارجية اليسرى صلة خارجية ، صلة خارجية متصلة ، صلة خارجية كاملة. لكن الانضمام الداخلي لا يوجد لديه مثل هذه الأنواع.

خاتمة:

كلا الصلات مفيدة للغاية. هناك استخدام يعتمد على متطلبات المستخدم.