Δείκτες UNION και UNION ALL στην SQL

Δείκτης UNION στην SQL

Ο επαγγελματίας δείκτης UNION χρησιμοποιείται για τη συγχώνευση των αποτελεσμάτων από δύο ή περισσότερες πρότασεις SELECT.

Παρακαλώ σημειώστε ότι η SELECT πρόταση εντός του UNION πρέπει να έχει το ίδιο αριθμό στήλων. Οι στήλες πρέπει επίσης να έχουν παρόμοιους τύπους δεδομένων. Επιπλέον, η σειρά των στηλών σε κάθε SELECT πρόταση πρέπει να είναι η ίδια.

Γλώσσα SQL UNION

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

Σημείωση:Από προεπιλογή, ο επαγγελματίας UNION επιλέγει διαφορετικές τιμές. Αν επιτρέπεται η επανάληψη των τιμών, χρησιμοποιήστε το UNION ALL.

Γλώσσα SQL UNION ALL

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

Επιπλέον, τα ονόματα των στηλών στη λίστα αποτελεσμάτων του UNION είναι πάντα ίσα με τα ονόματα των στηλών στη πρώτη εντολή SELECT του UNION.

Η αρχική τάβλη που χρησιμοποιείται στο παρακάτω παράδειγμα:

Employees_China:

E_ID E_Name
01 Zhang, Hua
02 Wang, Wei
03 Carter, Thomas
04 Yang, Ming

Employees_USA:

E_ID E_Name
01 Adams, John
02 Bush, George
03 Carter, Thomas
04 Gates, Bill

Χρήση της εντολής UNION

Παράδειγμα

Καταγράφει όλους τους διαφορετικούς ονόματα των υπαλλήλων στην Κίνα και τις Ηνωμένες Πολιτείες:

SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

Αποτελέσματα

E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Gates, Bill

Σημείωση:Η εντολή αυτή δεν μπορεί να καταγράψει όλους τους υπαλλήλους στην Κίνα και τις Ηνωμένες Πολιτείες. Στο παραπάνω παράδειγμα, έχουμε δύο υπαλλήλους με το ίδιο όνομα, αλλά μόνο ένας από αυτούς καταγράφεται. Η εντολή UNION θα επιλέξει μόνο διαφορετικές τιμές.

UNION ALL

Η εντολή UNION ALL και η εντολή UNION είναι σχεδόν ισοδύναμες, αλλά η εντολή UNION ALL θα καταγράψει όλες τις τιμές.

SQL Δήλωση 1
UNION ALL
SQL Δήλωση 2

Χρήση του εντολής UNION ALL

Παράδειγμα:

Καταγράφει όλους τους υπαλλήλους στην Κίνα και τις Ηνωμένες Πολιτείες:

SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA

Αποτελέσματα

E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Carter, Thomas
Gates, Bill