رسم بياني للمقارنة
أساس للمقارنة | ترك صلة خارجية | اليمين الخارجي تاريخ | الانضمام الخارجي الكامل |
---|---|---|---|
الأساسية | جميع الصفوف من الجدول الأيسر تبقى في النتيجة. | جميع الصفوف من الجدول الصحيح تبقى في النتيجة. | جميع الصفوف من اليسار وكذلك الجدول الصحيح تبقى في النتيجة. |
ملحق NULL | يتم توسيع tuples الجدول الأيسر التي ليس لديها tuple مطابقة في الجدول الأيمن مع قيمة NULL لسمات الجدول الصحيح. | يتم توسيع الصفوف من الجدول الأيمن التي ليس لديها tuple مطابقة في الجدول الأيسر مع قيمة NULL لسمات الجدول الأيسر. | يتم توسيع الصفوف من اليسار بالإضافة إلى الجدول الصحيح الذي لا يحتوي على مجموعتين متطابقتين في الجدول الأيمن والأيسر على التوالي بقيمة NULL لسمات الجداول اليمنى واليسرى. |
تعريف يسار الخارجي صلة
لنفترض أننا لدينا ، " Table_A Left Outer Join Table_B ". لذا فإن Table_A هو الجدول الأيسر الخاص بنا حيث يظهر إلى اليسار من عملية Left Outer Join و Table_B هو جدولنا الصحيح .
في البداية ، سيتم تطبيق الصلة الداخلية على Table_A و Table_B والتي ستعيد كل المجموعة المطابقة من الجدول A و B.
بعد ذلك ، ستقوم بإرجاع كافة tuples من Table_A التي لا تحتوي على tuple مطابقة في Table_B. مثل هذا ، سيتم padded مجموعات الناتجة مع قيم فارغة لخصائص الجدول الصحيح.
ومن ثم ، فإن النتيجة التي يتم الحصول عليها من Left Outer Join تحتفظ بجميع tuples من الجدول الأيسر وطبقات مطابقة فقط من الجدول الصحيح.
دعونا نناقش Left Outer Join مع مثال ؛ لدينا جدولين أدناه ، جدول الطالب وجدول قسم .
الآن ، سنقوم بتطبيق Left Outer Join ، على Student و Department Table.
اختر * من الطالب إلى الخارج
على الطالب. Student_ID = Department.Student_ID
في الاستعلام أعلاه ، جدول الطالب هو الجدول والجدول الأيسر القسم هو الجدول الصحيح. لذلك ، وفقًا لليسار أوتار جارت ، يجب أن تحتوي النتيجة على جميع المجموعات من جدول الطالب ، وتطابق فقط مجموعات من جدول القسم.
تعريف الحق الخارجي صلة
لنفترض أن لدينا ، " Table_A Right Outer Join Table_B ". لذا فإن Table_A هو الجدول الأيسر الخاص بنا حيث يظهر على يسار عملية Right Outer Join و Table_B هو جدولنا الصحيح .
كما هو الحال في Left Outer Join ، في البداية ، سيتم تطبيق الصلة الداخلية على Table_A و Table_B والتي ستعيد كل المجموعة المطابقة من الجدول A و B.
بعد ذلك ، ستقوم بإرجاع كافة tuples من Table_B التي لا تحتوي على tuple مطابقة في Table_A. مثل هذا ، سيتم padded tuples الناتجة مع قيم فارغة لخصائص الجدول الأيسر.
وبالتالي ، تحتفظ النتيجة التي تم الحصول عليها من الصلة الخارجية الصحيحة بكافة المجموعات من الجدول الأيمن وطبقات مطابقة فقط من الجدول الأيسر.
دعونا نناقش Right Outer Join مع مثال ؛ أعلاه لدينا اثنين من الجداول ، جدول الطالب وجدول قسم.
الآن ، سنطبق تطبيق Right Outer Join على جدول الطلاب وجدول القسم.
اختر * من قسم الطلاب إلى قسم الطلاب
على الطالب. Student_ID = Department.Student_ID
في الاستعلام أعلاه ، جدول الطالب هو جدولنا الأيسر والجدول هو جدولنا الصحيح. وفقًا لعملية Right Outer Join ، يجب أن تشتمل النتيجة على جميع المجموعات من جدول القسم ومطابقة التراكبات فقط من جدول الطالب.
تعريف الانضمام الخارجي الكامل
لنفترض أن لدينا " Table_A Full Join Join Table_B ". لذا فإن Table_A هو الجدول الأيسر الخاص بنا حيث يظهر على يسار عملية Full Outer Join و Table_B هو جدولنا الصحيح .
Full Outer Join هو مزيج من كل من Left Outer Join و Right Outer Join . مبدئيًا ، يتم تطبيق الربط الداخلي على Table_A و Table_B لاسترداد مجموعتين متطابقتين من كلا الجدولين. ثم فإنه يمتد تلك الصفوف من Table_A مع NULL التي لا تحتوي على tuple مطابقة في Table_B. علاوة على ذلك ، فإنه يمتد تلك المجموعات من Table_B مع NULL التي لا تحتوي على tuple مطابقة في Table_A.
وبالتالي ، يحتفظ Full Outer Join بجميع الصفوف من اليسار بالإضافة إلى الجدول الصحيح ، إلى جانب الصفوف المطابقة لكلتا الجدولين.
دعونا نناقش FULL الخارجي Join مع مثال ؛ لدينا جدولان أعلاه ، جدول الطالب وجدول القسم .
الآن ، سنقوم بتطبيق Full Outer Join على جدول الطالب وجدول القسم.
اختر * من قسم الطلاب الكامل للطلاب الخارجيين
على الطالب. Student_ID = Department.Student_ID
في الاستعلام أعلاه ، جدول الطالب هو جدولنا الأيسر وجدول القسم هو جدولنا الصحيح. وفقًا لـ Full Outer Join ، يجب أن تتضمن النتيجة جميع المجموعات من كلا الجدولين.
الاختلافات الأساسية بين اليسار واليمين والكامل الانضمام الخارجي
- نتيجة Left Outer Join يحتوي على كل tuples من الجدول الأيسر. وبالمثل ، فإن نتيجة Right Out Join تحتوي على جميع مجموعات الجدول الصحيح. وكانت نتيجة Full Outer Join جميع الصفوف من كل من اليسار والجدول الأيمن.
- في Left الخارجي Join ، يتم توسيع مجموعة من الجدول الأيسر التي ليس لديها tuple مطابقة في الجدول الأيمن مع قيم Null لخصائص الجدول الصحيح. عكس هو الحال بالنسبة اليمين الخارجي الانضمام. وفي Full Outer Join ، يتم توسيع المجموعات من الجداول اليمنى واليسرى التي لا تحتوي على مجموعات مطابقة في الجداول اليمنى واليسرى على التوالي مع NULL لخصائص الجدول الأيمن والأيسر على التوالي.
استنتاج:
اعتني بمواقف أسماء الجداول في الاستعلام. عندما يحدد موضع اسم الجدول في الاستعلام ما إذا كان سيتم اعتبار الجدول جدولًا يسارًا أو جدولًا صحيحًا.