PostgreSQL Ένωση, Ένωση ΟΛΟΙ με Παραδείγματα
Τι είναι PostgreSQL Ενωση?
The PostgreSQL Ο τελεστής UNION χρησιμοποιείται για το συνδυασμό συνόλων αποτελεσμάτων από περισσότερες από μία δηλώσεις SELECT σε ένα σύνολο αποτελεσμάτων. Τυχόν διπλότυπες σειρές από τα αποτελέσματα των εντολών SELECT εξαλείφονται. Ο χειριστής UNION λειτουργεί υπό δύο προϋποθέσεις:
- Τα ερωτήματα SELECT ΠΡΕΠΕΙ να επιστρέφουν παρόμοιο αριθμό ερωτημάτων.
- Οι τύποι δεδομένων όλων των αντίστοιχων στηλών πρέπει να είναι συμβατοί.
Ο τελεστής UNION χρησιμοποιείται συνήθως για να συνδυάσει δεδομένα από σχετικούς πίνακες που δεν έχουν κανονικοποιηθεί τέλεια.
Σύνταξη
SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)] UNION SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)];
Ακολουθεί μια εξήγηση για τις παραπάνω παραμέτρους:
Οι εκφράσεις_1, έκφραση_2, … έκφραση_n είναι οι υπολογισμοί ή οι στήλες που πρέπει να ανακτήσετε.
Οι πίνακες είναι οι πίνακες από τους οποίους πρέπει να ανακτήσετε εγγραφές.
Οι προϋποθέσεις WHERE είναι οι προϋποθέσεις που πρέπει να πληρούνται για την ανάκτηση εγγραφών.
Σημείωση: ότι εφόσον ο χειριστής UNION δεν επιστρέφει διπλότυπα, η χρήση του UNION DISTINCT δεν θα έχει καμία επίδραση στα αποτελέσματα.
PostgreSQL Ένωση
Ο χειριστής UNION καταργεί διπλότυπα. Ας το αποδείξουμε αυτό.
Έχουμε μια βάση δεδομένων που ονομάζεται Demo με τους παρακάτω πίνακες:
Βιβλίο:
Τιμή:
Ας εκτελέσουμε την ακόλουθη εντολή:
SELECT id FROM Book UNION SELECT id FROM Price;
Η εντολή θα επιστρέψει τα εξής:
Η στήλη id εμφανίζεται και στους πίνακες Βιβλίο και Τιμή. Ωστόσο, εμφανίζεται μόνο μία φορά στο αποτέλεσμα. Ο λόγος είναι ότι PostgreSQL Ο χειριστής UNION δεν επιστρέφει διπλότυπα.
PostgreSQL Ένωση Όλων
Αυτός ο τελεστής συνδυάζει σύνολα αποτελεσμάτων από περισσότερες από μία δηλώσεις SELECT χωρίς να αφαιρεί διπλότυπα. Ο τελεστής απαιτεί κάθε δήλωση SELECT να έχει παρόμοιο αριθμό πεδίων σε σύνολα αποτελεσμάτων παρόμοιων τύπων δεδομένων.
Σύνταξη:
SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)] UNION ALL SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)];
Ακολουθεί μια εξήγηση για τις παραπάνω παραμέτρους:
Οι εκφράσεις_1, έκφραση_2, … έκφραση_n είναι οι υπολογισμοί ή οι στήλες που πρέπει να ανακτήσετε.
Οι πίνακες είναι οι πίνακες από τους οποίους πρέπει να ανακτήσετε εγγραφές.
Οι προϋποθέσεις WHERE είναι οι προϋποθέσεις που πρέπει να πληρούνται για την ανάκτηση εγγραφών.
Σημείωση: Και οι δύο παραστάσεις πρέπει να έχουν ίσο αριθμό παραστάσεων.
Θα χρησιμοποιήσουμε τους παρακάτω πίνακες:
Βιβλίο:
Τιμή:
Εκτελέστε την ακόλουθη εντολή:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Θα πρέπει να επιστρέψει τα ακόλουθα:
Τα διπλότυπα δεν έχουν αφαιρεθεί.
ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ
The PostgreSQL Ο τελεστής UNION μπορεί να χρησιμοποιηθεί μαζί με τον όρο ORDER BY για την παραγγελία των αποτελεσμάτων του ερωτήματος. Για να το αποδείξουμε αυτό, θα χρησιμοποιήσουμε τους παρακάτω πίνακες:
Τιμή:
Τιμή 2:
Ακολουθεί η εντολή που δείχνει πώς να χρησιμοποιείτε τον τελεστή UNION μαζί με τον όρο ORDER BY:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price;
Η εντολή θα επιστρέψει τα εξής:
Οι εγγραφές ταξινομήθηκαν από τη στήλη τιμών. Η ρήτρα ταξινομεί τις εγγραφές σε αύξουσα σειρά από προεπιλογή. Για να τα ταξινομήσετε με φθίνουσα σειρά, προσθέστε τον όρο DESC όπως φαίνεται παρακάτω:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Η εντολή θα επιστρέψει τα εξής:
Οι εγγραφές έχουν ταξινομηθεί με βάση τη στήλη τιμής σε φθίνουσα σειρά.
Πότε να χρησιμοποιήσετε το Union και Πότε να χρησιμοποιήσετε το Union all;
Χρησιμοποιήστε τον τελεστή UNION όταν έχετε πολλούς πίνακες με παρόμοια δομή αλλά χωρισμένους για κάποιο λόγο. Είναι καλό όταν χρειάζεται να αφαιρέσετε/καταργήσετε διπλές εγγραφές.
Χρησιμοποιήστε τον τελεστή UNION ALL όταν δεν χρειάζεται να αφαιρέσετε/διαγράψετε διπλές εγγραφές.
Χρήση του pgAdmin
Ας δούμε τώρα πώς εκτελέστηκαν και οι τρεις ενέργειες χρησιμοποιώντας το pgAdmin.
Πώς να το χρησιμοποιήσετε: PostgreSQL Ένωση με χρήση του pgAdmin
Ακολουθεί η διαδικασία βήμα προς βήμα σχετικά με τον τρόπο χρήσης PostgreSQL Ένωση με χρήση του pgAdmin
Για να πετύχετε το ίδιο μέσω του pgAdmin, κάντε το εξής:
Βήμα 1) Συνδέση
Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2) Κάντε κλικ στις Βάσεις δεδομένων
- Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα
Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Στη συνέχεια, κάντε κλικ στο κουμπί Εκτέλεση. Όπως φαίνεται στην παρακάτω εικόνα.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Ένωση Όλων
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ
Ο τελεστής UNION ALL μπορεί να συνδυαστεί με την ρήτρα ORDER BY για να παραγγείλετε αποτελέσματα στο σύνολο αποτελεσμάτων. Για παράδειγμα:
SELECT id FROM Book UNION ALL SELECT id FROM price ORDER BY id;
Η εντολή θα επιστρέψει τα εξής:
Τα αποτελέσματα έχουν παραγγελθεί.
Σύνοψη
- The PostgreSQL Ο χειριστής UNION συνδυάζει αποτελέσματα από περισσότερα από ένα Δήλωση SELECT σε ένα σύνολο αποτελεσμάτων.
- Ο χειριστής UNION δεν επιστρέφει διπλότυπες εγγραφές.
- Για να παραγγείλετε τα αποτελέσματα, συνδυάστε το με την ρήτρα ORDER BY.
- Ο τελεστής UNION ALL συνδυάζει αποτελέσματα από περισσότερες από μία δηλώσεις SELECT σε ένα σύνολο αποτελεσμάτων.
- Ο χειριστής UNION ALL δεν καταργεί διπλότυπα.
Κάντε λήψη της βάσης δεδομένων που χρησιμοποιείται σε αυτό το σεμινάριο