logo

الفرق بين الاتحاد والاتحاد الكل

يعد UNION وUNION ALL من أهم عوامل تشغيل SQL المستخدمة في قاعدة البيانات لدمج مجموعة النتائج من جداول متعددة. تسمح لنا عوامل التشغيل هذه باستخدام استعلامات SELECT متعددة، واسترداد النتائج المطلوبة، ثم دمجها في الناتج النهائي . في هذه المقالة، سنرى كيف يختلفون عن بعضهم البعض. قبل إجراء المقارنة، سنناقش باختصار هذه العوامل.

ما هو مشغل الاتحاد؟

يسمح لنا مشغل الاتحاد في MySQL بدمج نتيجتين أو أكثر من استعلامات SELECT المتعددة في مجموعة نتائج واحدة. لديها ميزة افتراضية ل إزالة الصفوف المكررة من الجداول. يستخدم بناء جملة عامل التشغيل هذا دائمًا اسم العمود في عبارة SELECT الأولى ليكون أسماء أعمدة الإخراج.

ماي إس كيو إل يجب على الاتحاد اتباع هذه القواعد الأساسية:

  • يجب أن يكون عدد الأعمدة وترتيبها هو نفسه في كافة الاستعلامات.
  • يجب أن يحتوي موضع الأعمدة المقابلة لكل استعلام تحديد على نوع بيانات متوافق.
  • يجب أن يكون اسم العمود المحدد في استعلامات SELECT المختلفة بنفس الترتيب.
  • سيكون اسم عمود استعلام SELECT الأول هو أسماء أعمدة الإخراج.

ملحوظة: يجب أن نعرف أن Union و Join مختلفان.

  1. تقوم JOIN بدمج البيانات من عدة جداول مختلفة، بينما تقوم UNION بدمج البيانات من عدة جداول متشابهة.
  2. تقوم JOIN بإلحاق المخرجات أفقيًا، بينما يقوم UNION بدمج مجموعة النتائج عموديًا.

ويوضح التمثيل المرئي أدناه الأمر بشكل أكثر وضوحًا:

الاتحاد ضد الاتحاد الكل

لقراءة المزيد من المعلومات حول مشغل الاتحاد، انقر هنا.

ما هو الاتحاد الكل؟

يقوم عامل التشغيل UNION ALL بدمج نتيجتين أو أكثر من استعلامات SELECT المتعددة وإرجاع كافة السجلات في مجموعة نتائج واحدة. ولا يؤدي إلى إزالة الصفوف المكررة من إخراج عبارات SELECT.

يمكننا أن نفهم ذلك من خلال التمثيل المرئي التالي.

الاتحاد ضد الاتحاد الكل

الاتحاد مقابل الاتحاد جميع المشغلين

يشرح جدول المقارنة التالي الاختلافات الرئيسية بينهما بطريقة سريعة:

اتحاد الاتحاد الكل
فهو يجمع بين مجموعة النتائج من جداول متعددة و إرجاع سجلات متميزة في مجموعة نتائج واحدة. فهو يجمع بين مجموعة النتائج من جداول متعددة و إرجاع كافة السجلات في مجموعة نتائج واحدة.
فيما يلي الأساسي بناء الجملة مشغل الاتحاد:
حدد قائمة الأعمدة من الجدول 1
اتحاد
حدد قائمة الأعمدة من الجدول 2؛
فيما يلي الأساسي بناء الجملة مشغل UNION ALL:
حدد قائمة الأعمدة من الجدول 1
الاتحاد الكل
حدد قائمة الأعمدة من الجدول 2؛
يحتوي على ميزة افتراضية لإزالة الصفوف المكررة من الإخراج. ليس لديه ميزة لإزالة الصفوف المكررة من الإخراج.
إنه الأداء بطيء لأنه يستغرق وقتًا للعثور على السجلات المكررة ثم إزالتها. إنه الأداء سريع لأنه لا يزيل الصفوف المكررة.
يفضل معظم مستخدمي قاعدة البيانات استخدام هذا العامل. لا يفضل معظم مستخدمي قاعدة البيانات استخدام هذا العامل.

الاتحاد والاتحاد كل مثال

دعونا نفهم الاختلافات بين مشغلي Union و Union All من خلال مثال. لنفترض أن لدينا جدول اسمه ' طالب ' و ' الطالب2 ' والذي يحتوي على البيانات التالية:

الجدول: الطالب

الاتحاد ضد الاتحاد الكل

الجدول: الطالب2

الاتحاد ضد الاتحاد الكل

إرجاع عبارة SQL التالية اسم مميز للمدن من كلا الجدولين باستخدام استعلام UNION:

 SELECT City FROM student UNION SELECT City FROM student2 ORDER BY City; 

بعد تنفيذ العبارة أعلاه، سنحصل على الإخراج أدناه لأن عامل التشغيل Union يُرجع القيم المميزة فقط.

الاتحاد ضد الاتحاد الكل

إرجاع بيان SQL التالي جميع أسماء المدن بما في ذلك التكرارات من كلا الجدولين باستخدام استعلام UNION ALL:

 SELECT City FROM student UNION ALL SELECT City FROM student2 ORDER BY City; 

بعد تنفيذ البيان أعلاه، سوف نحصل على الإخراج أدناه لأن عامل التشغيل Union All يقوم بإرجاع السجلات بأكملها دون إزالة القيم المميزة.

الاتحاد ضد الاتحاد الكل