ההבדל ב-SQL בין מפעילי Union, Union All ו-Union Distinct

Hhbdl B Sql Byn Mp Yly Union Union All W Union Distinct



SQL מספק לנו את האופרטור UNION המאפשר לנו לשלב את קבוצות התוצאות של שתי הצהרות SELECT או יותר לקבוצת תוצאות אחת. ישנם שלושה סוגים עיקריים של אופרטורים UNION ב-SQL: UNION, UNION ALL ו-UNION DISTINCT.

הדרכה זו בוחנת את שלושת הסוגים הללו של UNIONS ומספקת דוגמאות מהעולם האמיתי ומעשיות לעבודה איתם.







הערה: בדוגמה זו, נשתמש במסד הנתונים לדוגמה של Sakila למטרות הדגמה. ודא שהתקנת אותו לפני ביצוע פקודות אלה. אתה יכול לעיין במדריך שלנו בנושא כדי ללמוד עוד.



מפעיל SQL UNION

כאמור, האופרטור UNION מאפשר לנו לשלב את קבוצת התוצאות של שתי הצהרות בחירה או יותר ולהסיר את הערכים הכפולים. התחביר של האופרטור UNION הוא כדלקמן:



בחר עמודה 1, עמודה 2, ...
מטבלה 1
הִתאַחֲדוּת
בחר עמודה 1, עמודה 2, ...
משולחן2;


בתחביר הדוגמה הקודם, אנו משתמשים במשפטי SELECT כדי לאחזר את הנתונים מהטבלאות שצוינו. לאחר מכן אופרטור UNION משלב את שתי ערכות התוצאות לקבוצה אחת. הבה ניקח דוגמה כיצד לעשות זאת באמצעות טבלת השחקנים המוגדרת במסד הנתונים של Sakila.





שקול את השאילתה לדוגמה הבאה המאחזרת את השם הפרטי ואת שם המשפחה של השחקנים מטבלת השחקנים ומטבלת הלקוח:

SELECT first_name, last_name
משחקן
הִתאַחֲדוּת
SELECT first_name, last_name
מלקוח; SELECT first_name, last_name
משחקן
הִתאַחֲדוּת
SELECT first_name, last_name
מלקוח;


השאילתה הקודמת מאגדת את השם הפרטי והמשפחה הן מטבלאות השחקנים והן מהלקוחות ומחזירה את הערכים כתוצאה אחת.



פלט לדוגמה הוא כדלקמן:

מפעיל SQL UNION ALL

בניגוד לאופרטור UNION שמסיר את הערכים הכפולים מערך התוצאות, האופרטור UNION מחזיר את כל שורות הטבלאות כולל הכפילויות.

התחביר הוא כדלקמן:

בחר עמודה 1, עמודה 2, ...
מטבלה 1
איחוד הכל
בחר עמודה 1, עמודה 2, ...
משולחן2;


הדוגמה הבאה בוחרת את השם הפרטי ושם המשפחה מטבלאות השחקנים והלקוחות במסד הנתונים של סקילה:

SELECT first_name, last_name
משחקן
איחוד הכל
SELECT first_name, last_name
מלקוח;


פלט לדוגמה הוא כדלקמן:

מפעיל SQL UNION DISTINCT

הסוג השני של מפעיל איגוד הוא UNION DISTINCT. אופרטור זה הוא פשוט כפיל של האופרטור UNION שמבצע פעולה דומה.

התחביר הוא כדלקמן:

בחר עמודה 1, עמודה 2, ...
מטבלה 1
UNION DISTINCT
בחר עמודה 1, עמודה 2, ...
משולחן2;


הצהרות SELECT שואבות את הנתונים מהטבלאות שצוינו, והאופרטור UNION DISTINCT משלב את ערכות התוצאות לקבוצת תוצאות אחת הכוללת את השורות הייחודיות.

בדוגמה של מסד הנתונים של Sakila, אנו יכולים להריץ את הפקודה הבאה:

SELECT first_name, last_name
משחקן
UNION DISTINCT
SELECT first_name, last_name
מלקוח;


זה אמור להחזיר תוצאה דומה לאופרטור UNION.

סיכום

למדנו איך לעבוד עם הסוגים השונים של UNIONS ב-SQL. האופרטור UNION משלב את קבוצת התוצאות של שתי הצהרות בחירה או יותר ומסיר את הרשומות הכפולות. ה- UNION ALL מבצע פעולה דומה אך כולל כל שורות כפולות. לבסוף, ה- UNION DISTINCT זהה לאופרטור UNION מקורי.