Κατά τον χειρισμό δεδομένων σε βάσεις δεδομένων, συνήθως τείνουμε να χρησιμοποιούμε τους τελεστές σετ SQL , για την ανάκτηση δεδομένων σύμφωνα με τις απαιτήσεις μας συνδυάζοντας δύο ή περισσότερες δηλώσεις SELECT. Σε αυτό το άρθρο σχετικά με το SQL UNION, θα συζητήσω τον τελεστή UNION που χρησιμοποιείται για την ανάκτηση δεδομένων με την ακόλουθη σειρά:
Ας ξεκινήσουμε!
Τι είναι ο τελεστής SQL UNION;
Όπως υποδηλώνει το όνομα, αυτός ο τελεστής / ρήτρα χρησιμοποιείται για να συνδυάσει τα αποτελέσματα δύο ή περισσότερων δηλώσεων SELECT. Εδώ κάθε δήλωση SELECT που χρησιμοποιείται στη δήλωση UNION πρέπει να έχει τον ίδιο αριθμό στηλών με την ίδια σειρά. Επίσης, όλες οι στήλες που υπάρχουν στις δηλώσεις SELECT πρέπει να έχουν παρόμοιους τύπους δεδομένων.
Η ρήτρα UNION δίνει μόνο μοναδικές τιμές ως έξοδο. Σε περίπτωση που θέλετε διπλές τιμές, τότε πρέπει να χρησιμοποιήσετε τον όρο UNION ALL.
Προχωρώντας σε αυτό το άρθρο σχετικά με το SQL UNION, ας κατανοήσουμε τη σύνταξη.
Σύνταξη SQL UNION
Σύνταξη UNION
ΕΠΙΛΕΞΤΕ Στήλη1, Στήλη2, Στήλη3, ..., ΣτήληΝ ΑΠΟ ΠΙΝΑΚΑ1 ΕΝΩΣΗ ΕΠΙΛΟΓΗ Στήλη1, Στήλη2, Στήλη3, ..., ΣτήληΝ ΑΠΟ Πίνακα2
Σύνταξη UNION ALL
SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1 UNION ALL SELECT Column1, Column2, Column3, ..., ColumnN FROM Table2
Προχωρώντας σε αυτό το άρθρο, ας κατανοήσουμε τις διαφορές μεταξύ UNION και UNION ALL.
Διαφορές μεταξύ SQL UNION και UNION ALL
ΕΝΩΣΗ | ΕΝΩΣΗ ΟΛΑ |
Συνδυάζει δύο ή περισσότερα σετ αποτελεσμάτων και δεν διατηρεί τις διπλές τιμές. | Συνδυάζει δύο ή περισσότερα σετ αποτελεσμάτων και διατηρεί τις διπλές τιμές. |
Σύνταξη: ΕΝΩΣΗ | Σύνταξη: ΕΝΩΣΗ ΟΛΑ |
Στη συνέχεια, σε αυτό το άρθρο σχετικά με το SQL UNION, ας κατανοήσουμε τους διαφορετικούς τρόπους χρήσης αυτού του χειριστή.
Παραδείγματα SQL UNION και UNION ALL
Για την καλύτερη κατανόησή σας, θα εξετάσω τους παρακάτω πίνακες για να σας δείξω διαφορετικά παραδείγματα.
Πίνακας εργαζομένων
ΕΜΠΕΙΔ | Ονομα | EmpAge | Πόλη | Ταχυδρομικός Κώδικας | Χώρα |
ένας | Έμμα | 2. 3 | Βερολίνο | 12109 | Γερμανία |
2 | Ραχούλ | 26 | Μουμπάι | 400015 | Ινδία |
3 | Aayra | 24 | Νέα Υόρκη | 10014 | ΧΡΗΣΕΙΣ |
4 | Γιάννης | 32 | Λονδίνο | Ε1 7ΑΕ | Ηνωμένο Βασίλειο |
5 | Ντέρεκ | 29 | Νέα Υόρκη | 10012 | ΧΡΗΣΕΙΣ |
Πίνακας έργων
ProjectID | Ονομα | Εργάσιμες μέρες | Πόλη | Ταχυδρομικός Κώδικας | Χώρα |
ένας | Έργο 1 | 10 | Βερολίνο | 12109 | Γερμανία |
2 | Έργο 2 | 7 | Μουμπάι | 400015 | Ινδία |
3 | Έργο 3 | είκοσι | Δελχί | 110006 | Ινδία |
4 | Έργο 4 | δεκαπέντε | Μουμπάι | 400015 | Ινδία |
5 | Έργο 5 | 28 | Βερολίνο | 12109 | Γερμανία |
Ας ξεκινήσουμε με παραδείγματα.
Παραδείγματα SQL UNION
Παράδειγμα χειριστή της UNION
Γράψτε ένα ερώτημα για να ανακτήσετε διαφορετικές πόλεις από τον πίνακα «Υπάλληλοι και Έργα».
ΕΠΙΛΕΞΤΕ Πόλη ΑΠΟ Εργαζομένους ΕΝΩΣΗ ΕΠΙΛΕΞΤΕ Πόλη ΑΠΟ Έργα ΠΑΡΑΓΓΕΛΙΑ ΑΝΑ Πόλη
Παραγωγή:
Πόλη |
Βερολίνο |
Δελχί |
Λονδίνο |
Μουμπάι |
Νέα Υόρκη μετατροπή συμβολοσειράς ημερομηνία σε ημερομηνία |
Παράδειγμα χειριστή UNION ALL
Γράψτε ένα ερώτημα για να ανακτήσετε πόλεις από τον πίνακα «Υπάλληλοι και Έργα». Εδώ, πρέπει να περιλαμβάνονται διπλές τιμές.
SELECT City FROM Employees UNION ALL SELECT City FROM Έργα ΠΑΡΑΓΓΕΛΙΑ ΑΝΑ Πόλη
Παραγωγή:
Πόλη |
Βερολίνο |
Βερολίνο |
Βερολίνο |
Δελχί |
Λονδίνο |
Μουμπάι |
Μουμπάι |
Μουμπάι |
Νέα Υόρκη |
Νέα Υόρκη |
Στη συνέχεια σε αυτό το άρθρο, ας καταλάβουμε πώς να χρησιμοποιήσουμε τον όρο UNION με τα ψευδώνυμα SQL.
UNION με ψευδώνυμα SQL
Χρησιμοποιούνται ψευδώνυμα SQLγια να δώσετε έναν πίνακα ή μια στήλη ένα προσωρινό όνομα. Ας γράψουμε λοιπόν ένα ερώτημα για να απαριθμήσουμε όλους τους μοναδικούς υπαλλήλους και έργα.
ΕΠΙΛΕΞΤΕ «Υπάλληλος» Τύπος AS, Όνομα, Πόλη, Χώρα ΑΠΟ Υπαλλήλους ΕΝΩΣΗ «Έργο», Όνομα, Πόλη, Χώρα ΑΠΟ Έργα
Παραγωγή:
Τύπος | Ονομα | Πόλη | Χώρα |
Υπάλληλος | Έμμα | Βερολίνο | Γερμανία |
Υπάλληλος | Ραχούλ | Μουμπάι | Ινδία |
Υπάλληλος | Aayra | Νέα Υόρκη | ΧΡΗΣΕΙΣ |
Υπάλληλος | Γιάννης | Λονδίνο | Ηνωμένο Βασίλειο |
Υπάλληλος | Ντέρεκ | Νέα Υόρκη | ΧΡΗΣΕΙΣ |
Εργο | Έργο 1 | Βερολίνο | Γερμανία |
Εργο | Έργο 2 | Μουμπάι | Ινδία |
Εργο | Έργο 3 | Δελχί | Ινδία |
Εργο | Έργο 4 | Μουμπάι | Ινδία |
Εργο | Έργο 5 | Βερολίνο | Γερμανία |
ΕΝΩΣΗ με όρο
Γράψτε ένα ερώτημα για να ανακτήσετε τις ξεχωριστές πόλεις της Ινδίας και τους ταχυδρομικούς κώδικες τους από τον πίνακα «Υπάλληλοι και Έργα».
SELECT City, PostalCode, Country FROM Employees WHERE Country = 'India' UNION SELECT City, PostalCode, Country FROM Projects WHERE Country = 'Ινδία' ΠΑΡΑΓΓΕΛΙΑ ΑΝΑ Πόλη
Παραγωγή:
Πόλη | Ταχυδρομικός Κώδικας | Χώρα |
Δελχί | 110006 | Ινδία |
Μουμπάι | 400015 | Ινδία |
ΕΝΩΣΗ ΟΛΩΝ με ΡΗΤΙΑ ΠΟΥ
Γράψτε ένα ερώτημα για να ανακτήσετε πόλεις της Ινδίας και τους ταχυδρομικούς κώδικες τους από τον πίνακα «Υπάλληλοι και Έργα», όπου επιτρέπονται διπλές τιμές
SELECT City, PostalCode, Country FROM Employees WHERE Country = 'India' ΕΝΩΣΗ ALL SELECT City, PostalCode, Country FROM Projects WHERE Country = 'Ινδία' ΠΑΡΑΓΓΕΛΙΑ ΑΝΑ Πόλη
Παραγωγή:
Πόλη | Ταχυδρομικός Κώδικας | Χώρα |
Δελχί | 110006 | Ινδία |
Μουμπάι | 400015 | Ινδία |
Μουμπάι | 400015 | Ινδία |
Μουμπάι | 400015 | Ινδία |
Προχωρώντας προς τα εμπρός σε αυτό το άρθρο, ας καταλάβουμε πώς να χρησιμοποιήσουμε όλες τις ρήτρες UNION και UNION με τους JOINS.ΣΥΝΔΕΣΕΙΣ στο SQL είναι που χρησιμοποιούνται για το συνδυασμό σειρών από δύο ή περισσότερους πίνακες, με βάση μια σχετική στήλη μεταξύ αυτών των πινάκων.
ΕΝΩΣΗ με ΕΓΓΡΑΦΕΣ
Ο χειριστής SQL UNION μπορεί να χρησιμοποιηθεί με για ανάκτηση δεδομένων από δύο διαφορετικούς πίνακες. Θα εξετάσω τον παρακάτω πίνακα μαζί με τον πίνακα υπαλλήλων για το παράδειγμα.
Πίνακας ProjectDetails
PID | Εργάσιμες μέρες | ΕΜΠΕΙΔ | CostforProject |
έντεκα | 12 | 4 | 20000 |
22 | 16 | 3 | 35000 |
33 | 30 | ένας | 60000 |
44 | 25 | 3 | 45000 |
55 | είκοσι ένα | ένας | 50.000 |
SELECT EmpID, Name, CostforProject FROM Employees LEFT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID UNION SELECT EmpID, Name, CostforProject FROM υπαλλήλων RIGHT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID
Παραγωγή:
ΕΜΠΕΙΔ | Ονομα | CostforProject |
ένας | Έμμα | 60000 |
ένας | Έμμα | 50.000 |
2 | Ραχούλ | ΜΗΔΕΝΙΚΟ |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | Γιάννης | 20000 |
5 | Ντέρεκ | ΜΗΔΕΝΙΚΟ |
ΕΝΩΣΗ ΟΛΩΝ ΜΕ ΕΓΓΡΑΦΕΣ
Γράψτε ένα ερώτημα για να ανακτήσετε τον πίνακα EmpID, Name και CostforProject από τους υπαλλήλους και το ProjectDetails, όπου επιτρέπονται διπλές τιμές.
SELECT EmpID, Name, CostforProject FROM Employees LEFT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID UNION ALL SELECT EmpID, Name, CostforProject FROM Employees RIGHT JOIN ProjectDetails ON υπαλλήλους.EmpID = ProjectDetails.EmpID
Παραγωγή:
ΕΜΠΕΙΔ | Ονομα | CostforProject |
ένας | Έμμα | 60000 |
ένας | Έμμα | 50.000 |
2 | Ραχούλ | ΜΗΔΕΝΙΚΟ |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | Γιάννης | 20000 |
5 | Ντέρεκ | ΜΗΔΕΝΙΚΟ |
4 | Γιάννης | 20000 |
3 | Aayra | 35000 |
ένας | Έμμα | 60000 |
3 | Aayra | 35000 |
ένας | Έμμα | 50.000 |
Με αυτό, φτάνω στο τέλος αυτού του άρθρου σχετικά με την SQL UNION. Ελπίζω να σας άρεσε να διαβάζετε αυτό το άρθρο στο SQL UNION. Έχουμε δει τους διαφορετικούς τρόπους χρήσης των εντολών UNION και UNION ALL για να σας βοηθήσουμε να γράψετε ερωτήματα. Εάν θέλετε να μάθετε περισσότερα για MySQL και γνωρίστε αυτήν τη σχεσιακή βάση δεδομένων ανοιχτού κώδικα και, στη συνέχεια, ρίξτε μια ματιά στη δική μας που έρχεται με ζωντανή εκπαίδευση με καθοδήγηση εκπαιδευτή και πραγματική εμπειρία έργου. Αυτή η εκπαίδευση θα σας βοηθήσει να κατανοήσετε τη MySQL σε βάθος και να σας βοηθήσει να επιτύχετε την εξουσία πάνω στο θέμα.
Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων του 'SQL UNION' και θα επικοινωνήσω μαζί σας.