موصى به, 2024

اختيار المحرر

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

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

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

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

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

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

يمكن تفسير Inner 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 يجمع فقط المجموعة المطابقة لجدولين.

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

على عكس iner Join ، فقط تلك الصفوف هي المخرجات التي لها نفس قيم السمة في كل من الجدول المقارن. Out Join Joins كافة tuples من كل من الجدول. الانضمام الخارجي هو من ثلاثة أنواع يسار الخارجي صلة ، حق الخارجي صلة ، و كامل الخارجي صلة .

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

حدد الاسم ، اسم_الطلاب من قسم الطالب الخارجي إلى قسم الطالب على Student.Department_ID = Depoartment.ID.

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

حدد الاسم ، Department_name من القسم Right Outer انضم إلى Student ON Student.Department_ID = Depoartment.ID.

يمكنك رؤية أن جميع المجموعات من جدول الأقسام معروضة.

حدد الاسم ، Department_name من الطالب الكامل الخارجي الانضمام قسم على Student.Department_ID = Depoartment.ID.

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

الاختلافات الرئيسية بين الانضمام الداخلي والخارجي صلة

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

استنتاج:

كل من ينضم مفيدة جدا. يعتمد الاستخدام على متطلبات المستخدم.

Top