PostgreSQL Τύποι σύνδεσης: Εσωτερικός, Εξωτερικός, Αριστερός, Δεξίς
⚡ Έξυπνη Σύνοψη
PostgreSQL Οι ενώσεις ανακτούν και συνδυάζουν γραμμές από δύο ή περισσότερους πίνακες χρησιμοποιώντας ένα κοινόχρηστο κλειδί και περιλαμβάνουν εσωτερικές ενώσεις όπως θήτα, EQUI και natural, καθώς και εξωτερικές ενώσεις που καλύπτουν αριστερά, δεξιά και πλήρη αποτελέσματα.

Τι είναι οι εγγραφές PostgreSQL?
PostgreSQL Ενώνει χρησιμοποιούνται για την ανάκτηση δεδομένων από περισσότερους από έναν πίνακες. Με τις Joins, είναι δυνατό να συνδυάσουμε τις εντολές SELECT και JOIN σε μία μόνο εντολή. Μια συνθήκη JOIN προστίθεται στην εντολή και επιστρέφονται όλες οι γραμμές που πληρούν τις συνθήκες. Οι τιμές από διαφορετικούς πίνακες συνδυάζονται με βάση κοινές στήλες. Η κοινή στήλη είναι κυρίως ένα πρωτεύον κλειδί στον πρώτο πίνακα και ένα ξένο κλειδί του δεύτερου πίνακα.
PostgreSQL Τύποι συμμετοχής
Υπάρχουν δύο τύποι Join in PostgreSQL:
- Εσωτερικά ενώνει
- Εξωτερικές συνδέσεις
PostgreSQL Εσωτερική σύνδεση
Υπάρχουν 3 τύποι εσωτερικών συνδέσεων PostgreSQL:
- Θήτα εγγραφείτε
- Φυσική ένωση
- EQUI συμμετοχή
Εγγραφή Θήτα
Μια ένωση θήτα επιτρέπει σε κάποιον να ενώσει δύο πίνακες με βάση τη συνθήκη που αντιπροσωπεύεται από το θήτα. Οι ενώσεις θήτα μπορούν να λειτουργήσουν με όλους τους τελεστές σύγκρισης. Στις περισσότερες περιπτώσεις, η ένωση θήτα αναφέρεται ως εσωτερική ένωση.
Το theta join είναι ο πιο βασικός τύπος JOIN. Θα επιστρέψει όλες τις σειρές από τους πίνακες όπου η συνθήκη JOIN ικανοποιείται.
Σύνταξη:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Εξετάστε τους ακόλουθους πίνακες της βάσης δεδομένων επίδειξης:
Βιβλίο:
Τιμή:
Θέλουμε να δούμε το όνομα κάθε βιβλίου και την αντίστοιχη Τιμή. Μπορούμε να εκτελέσουμε την ακόλουθη εντολή:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Αυτό θα επιστρέψει τα ακόλουθα:
Μόνο 3 σειρές ικανοποιούσαν την συνθήκη σύνδεσης.
EQUI Εγγραφείτε
Η ένωση EQUI μας παρέχει έναν τρόπο ένωσης δύο πινάκων με βάση τη σχέση πρωτεύοντος κλειδιού/ξένου κλειδιού. Για παράδειγμα:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Αυτό θα επιστρέψει τα ακόλουθα:
Έχουν επιστραφεί εγγραφές και από τους δύο πίνακες με βάση τις κοινές στήλες, δηλαδή τη στήλη id.
Φυσική συμμετοχή
Αυτός ο τύπος σύνδεσης μας παρέχει έναν άλλο τρόπο σύνταξης μιας σύνδεσης EQUI. Μπορούμε να βελτιώσουμε το προηγούμενο παράδειγμά μας προσθέτοντας τη λέξη-κλειδί NATURAL όπως φαίνεται παρακάτω:
SELECT * FROM Book NATURAL JOIN Price;
Αυτό θα επιστρέψει τα ακόλουθα:
Έχει επιστραφεί μόνο μία στήλη αναγνωριστικού. Το NATURAL JOIN μπόρεσε να σημειώσει ότι η στήλη id είναι κοινή στους δύο πίνακες. Μόνο ένα επεστράφη.
PostgreSQL Εξωτερική συμμετοχή
Υπάρχουν 3 τύποι εξωτερικών συνδέσεων PostgreSQL:
- Αριστερά εξωτερική εγγραφή
- Δεξιά εξωτερική συμμετοχή
- Πλήρης εξωτερική συμμετοχή
PostgreSQL Αριστερά εξωτερική εγγραφή
Η ΑΡΙΣΤΕΡΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ θα επιστρέψει όλες τις σειρές στον πίνακα στην αριστερή πλευρά και μόνο τις σειρές στον πίνακα της δεξιάς πλευράς όπου η συνθήκη σύνδεσης έχει ικανοποιηθεί.
Σύνταξη:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
Πρέπει να δούμε το όνομα κάθε βιβλίου και την αντίστοιχη Τιμή. Μπορούμε να εκτελέσουμε την ακόλουθη εντολή:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Αυτό επιστρέφει τα ακόλουθα:
Και οι 4 σειρές στον πίνακα Βιβλίο έχουν επιστραφεί. Μόνο 3 σειρές από τον πίνακα Τιμή πληρούσαν την προϋπόθεση σύνδεσης. Ως εκ τούτου, επιστράφηκαν. Το τελευταίο βιβλίο δεν έχει αντίστοιχη τιμή τιμής.
PostgreSQL Δεξιά εξωτερική συμμετοχή
Η ΔΕΞΙΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ επιστρέφει όλες τις σειρές στον πίνακα στη δεξιά πλευρά και τις σειρές στον πίνακα στην αριστερή πλευρά όπου η συνθήκη σύνδεσης έχει ικανοποιηθεί.
Σύνταξη:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
Για παράδειγμα:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Αυτό επιστρέφει τα ακόλουθα:
Όλες οι γραμμές στον πίνακα Price έχουν επιστραφεί. Επιστράφηκαν μόνο οι γραμμές στον πίνακα Book που πληρούσαν τη συνθήκη join. Η 3η γραμμή δεν έχει τιμή για το name, καθώς δεν βρέθηκε καμία αντιστοιχία.
Full Outer Join in PostgreSQL
Αυτός ο τύπος JOIN θα επιστρέψει όλες τις σειρές στον πίνακα στην αριστερή πλευρά και όλες τις σειρές στον πίνακα στη δεξιά πλευρά με μηδενικές τιμές όπου η συνθήκη σύνδεσης δεν ικανοποιείται.
Σύνταξη:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
Για παράδειγμα:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Αυτό επιστρέφει τα ακόλουθα:
Όλες οι σειρές από όλους τους πίνακες έχουν επιστραφεί, με μηδενικές, όπου δεν βρέθηκε αντιστοίχιση.
Χρήση του pgAdmin
Οι παραπάνω εργασίες μπορούν να ολοκληρωθούν στο pgAdmin ως εξής. Οι ακόλουθες ενότητες περιγράφουν κάθε τύπο σύνδεσης βήμα προς βήμα.
pgAdmin Inner Join
Τα παρακάτω βήματα δείχνουν πώς να εκτελέσετε κάθε παραλλαγή εσωτερικής σύνδεσης στο pgAdmin.
Πώς να χρησιμοποιήσετε το Theta Join in PostgreSQL χρησιμοποιώντας το pgAdmin
Παρακάτω είναι τα βήματα για να χρησιμοποιήσετε το Theta Join in PostgreSQL χρησιμοποιώντας το pgAdmin:
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin
Ανοίξτε το pgAdmin και συνδεθείτε χρησιμοποιώντας τα διαπιστευτήριά σας
Βήμα 2) Δημιουργία βάσης δεδομένων επίδειξης
- Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα
Πληκτρολογήστε το παρακάτω ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Βήμα 4) Εκτελέστε το ερώτημα
Κάντε κλικ στο κουμπί Εκτέλεση
Θα πρέπει να επιστρέψει τα ακόλουθα:
EQUI Εγγραφείτε
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Φυσική συμμετοχή
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT * FROM Book NATURAL JOIN Price;
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
pgAdmin Simple Inner Join
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
pgAdmin Outer Join
Στη συνέχεια, εκτελέστε τις τρεις παραλλαγές εξωτερικής σύνδεσης στο pgAdmin ακολουθώντας τα παρακάτω βήματα.
Αριστερά εξωτερική εγγραφή
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Δεξιά εξωτερική συμμετοχή
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Πλήρης εξωτερική συμμετοχή
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Κάντε λήψη της βάσης δεδομένων που χρησιμοποιείται σε αυτό το σεμινάριο





























