Διαφορά SQL μεταξύ Union, Union All και Union Distinct Operators

Diaphora Sql Metaxy Union Union All Kai Union Distinct Operators



Η SQL μας παρέχει τον τελεστή UNION που μας επιτρέπει να συνδυάσουμε τα σύνολα αποτελεσμάτων δύο ή περισσότερων εντολών SELECT σε ένα ενιαίο σύνολο αποτελεσμάτων. Υπάρχουν τρεις κύριοι τύποι τελεστών UNION στην SQL: UNION, UNION ALL και UNION DISTINCT.

Αυτό το σεμινάριο εξερευνά αυτούς τους τρεις τύπους ΕΝΩΣΕΩΝ και παρέχει πραγματικά και πρακτικά παραδείγματα εργασίας μαζί τους.







ΣΗΜΕΙΩΣΗ: Σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε το δείγμα βάσης δεδομένων Sakila για σκοπούς επίδειξης. Βεβαιωθείτε ότι το έχετε εγκαταστήσει πριν εκτελέσετε αυτές τις εντολές. Μπορείτε να δείτε το σεμινάριο μας σχετικά με αυτό για να μάθετε περισσότερα.



Χειριστής SQL UNION

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



ΕΠΙΛΟΓΗ στήλη1, στήλη 2, ...
ΑΠΟ τον πίνακα 1
ΕΝΩΣΗ
ΕΠΙΛΟΓΗ στήλη1, στήλη 2, ...
ΑΠΟ τον πίνακα 2;


Στο προηγούμενο παράδειγμα σύνταξης, χρησιμοποιούμε τις δηλώσεις SELECT για να ανακτήσουμε τα δεδομένα από τους καθορισμένους πίνακες. Στη συνέχεια, ο τελεστής UNION συνδυάζει τα δύο σύνολα αποτελεσμάτων σε ένα σύνολο. Ας πάρουμε ένα παράδειγμα για το πώς να το κάνετε αυτό χρησιμοποιώντας τον πίνακα ηθοποιών που ορίζεται στη βάση δεδομένων Sakila.





Εξετάστε το ακόλουθο παράδειγμα ερωτήματος που ανακτά το όνομα και το επώνυμο των ηθοποιών από τον πίνακα ηθοποιών και τον πίνακα του πελάτη:

ΕΠΙΛΕΞΤΕ όνομα, επώνυμο
ΑΠΟ ηθοποιό
ΕΝΩΣΗ
ΕΠΙΛΕΞΤΕ όνομα, επώνυμο
ΑΠΟ πελάτη? ΕΠΙΛΕΞΤΕ όνομα, επώνυμο
ΑΠΟ ηθοποιό
ΕΝΩΣΗ
ΕΠΙΛΕΞΤΕ όνομα, επώνυμο
ΑΠΟ πελάτη?


Το προηγούμενο ερώτημα ανιχνεύει το όνομα και το επίθετο τόσο από τον πίνακα ηθοποιών όσο και από τον πίνακα πελατών και επιστρέφει τις τιμές ως μεμονωμένο αποτέλεσμα.



Ένα παράδειγμα εξόδου είναι το εξής:

Διαχειριστής SQL UNION ALL

Σε αντίθεση με τον τελεστή UNION που αφαιρεί τις διπλότυπες τιμές από το σύνολο αποτελεσμάτων, ο τελεστής UNION επιστρέφει όλες τις σειρές των πινάκων συμπεριλαμβανομένων των διπλότυπων.

Η σύνταξη έχει ως εξής:

ΕΠΙΛΟΓΗ στήλη1, στήλη 2, ...
ΑΠΟ τον πίνακα 1
ΕΝΩΣΗ ΟΛΩΝ
ΕΠΙΛΟΓΗ στήλη1, στήλη 2, ...
ΑΠΟ τον πίνακα 2;


Το ακόλουθο παράδειγμα επιλέγει το όνομα και το επώνυμο από τους πίνακες ηθοποιών και πελατών στη βάση δεδομένων Sakila:

ΕΠΙΛΕΞΤΕ όνομα, επώνυμο
ΑΠΟ ηθοποιό
ΕΝΩΣΗ ΟΛΩΝ
ΕΠΙΛΕΞΤΕ όνομα, επώνυμο
ΑΠΟ πελάτη?


Ένα παράδειγμα εξόδου είναι το εξής:

SQL UNION DISTINCT Operator

Ο άλλος τύπος συνδικαλιστικού χειριστή είναι ο UNION DISTINCT. Αυτός ο τελεστής είναι απλώς ένα αντίγραφο του τελεστή UNION που εκτελεί παρόμοια ενέργεια.

Η σύνταξη έχει ως εξής:

ΕΠΙΛΟΓΗ στήλη1, στήλη 2, ...
ΑΠΟ τον πίνακα 1
ΔΙΑΚΡΙΣΗ ΕΝΩΣΗΣ
ΕΠΙΛΟΓΗ στήλη1, στήλη 2, ...
ΑΠΟ τον πίνακα 2;


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

Στο παράδειγμα της βάσης δεδομένων Sakila, μπορούμε να εκτελέσουμε την ακόλουθη εντολή:

ΕΠΙΛΕΞΤΕ όνομα, επώνυμο
ΑΠΟ ηθοποιό
ΔΙΑΚΡΙΣΗ ΕΝΩΣΗΣ
ΕΠΙΛΕΞΤΕ όνομα, επώνυμο
ΑΠΟ πελάτη?


Αυτό θα πρέπει να επιστρέψει ένα παρόμοιο αποτέλεσμα με τον τελεστή UNION.

συμπέρασμα

Μάθαμε πώς να εργαζόμαστε με τους διάφορους τύπους UNIONS στην SQL. Ο τελεστής UNION συνδυάζει το σύνολο αποτελεσμάτων δύο ή περισσότερων επιλεγμένων δηλώσεων και καταργεί τις διπλές εγγραφές. Το UNION ALL εκτελεί παρόμοια ενέργεια, αλλά περιλαμβάνει διπλότυπες σειρές. Τέλος, το UNION DISTINCT είναι πανομοιότυπο με έναν εγγενή τελεστή UNION.