PostgreSQL Ένωση, Ένωση ΟΛΟΙ με Παραδείγματα
⚡ Έξυπνη Σύνοψη
PostgreSQL Η συνάρτηση UNION συνδυάζει τα αποτελέσματα δύο ή περισσότερων εντολών SELECT σε ένα ενιαίο σύνολο αποτελεσμάτων και αφαιρεί τις διπλότυπες γραμμές, ενώ η συνάρτηση UNION ALL διατηρεί κάθε γραμμή, παρέχοντας μια ταχύτερη επιλογή όταν τα διπλότυπα δεν έχουν σημασία.

Τι είναι 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 πρέπει να έχουν ίσο αριθμό εκφράσεων.
Θα χρησιμοποιήσουμε τους παρακάτω πίνακες:
Βιβλίο:
Τιμή:
Εκτελέστε την ακόλουθη εντολή:
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 όταν δεν χρειάζεται να καταργήσετε ή να εξαλείψετε διπλότυπες εγγραφές.
Χρήση του pgAdmin
Τώρα ας δούμε πώς εκτελούνται και οι τρεις ενέργειες χρησιμοποιώντας το pgAdmin.
Πώς να το χρησιμοποιήσετε: PostgreSQL Ένωση με χρήση του pgAdmin
Ακολουθεί μια βήμα προς βήμα διαδικασία για τον τρόπο χρήσης PostgreSQL ΕΝΩΣΗ μέσω pgAdmin:
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2) Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων και, στη συνέχεια, κάντε κλικ στην επιλογή Επίδειξη.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Ένωση Όλων
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2) Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων και, στη συνέχεια, κάντε κλικ στην επιλογή Επίδειξη.
Βήμα 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;
Η εντολή θα επιστρέψει τα εξής:
Τα αποτελέσματα έχουν παραγγελθεί.
Κάντε λήψη της βάσης δεδομένων που χρησιμοποιείται σε αυτό το σεμινάριο

















