PostgreSQL Ενώστε τους τύπους με παραδείγματα: Εσωτερικό, Εξωτερικό, Αριστερά, Δεξιά
Τι είναι οι εγγραφές 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 είναι κοινή στους δύο πίνακες. Μόνο ένα επεστράφη.
Postgres Outer Join
Υπάρχουν 3 τύποι εξωτερικών συνδέσεων PostgreSQL:
- Αριστερά εξωτερική εγγραφή
- Δεξιά εξωτερική συμμετοχή
- Πλήρης εξωτερική συμμετοχή
Postgres Left Outer Join
Η ΑΡΙΣΤΕΡΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ θα επιστρέψει όλες τις σειρές στον πίνακα στην αριστερή πλευρά και μόνο τις σειρές στον πίνακα της δεξιάς πλευράς όπου η συνθήκη σύνδεσης έχει ικανοποιηθεί.
Σύνταξη:
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 σειρές από τον πίνακα Τιμή πληρούσαν την προϋπόθεση σύνδεσης. Ως εκ τούτου, επιστράφηκαν. Το τελευταίο βιβλίο δεν έχει αντίστοιχη τιμή τιμής.
Postgres Right Outer Join
Η ΔΕΞΙΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ επιστρέφει όλες τις σειρές στον πίνακα στη δεξιά πλευρά και τις σειρές στον πίνακα στην αριστερή πλευρά όπου η συνθήκη σύνδεσης έχει ικανοποιηθεί.
Σύνταξη:
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;
Αυτό επιστρέφει τα ακόλουθα:
Όλες οι σειρές στον πίνακα Τιμή έχουν επιστραφεί. Επιστράφηκαν μόνο οι σειρές στον πίνακα Βιβλίο που πληρούσαν την συνθήκη σύνδεσης. Το 3rd Η σειρά δεν έχει αξία για το όνομα αφού δεν βρέθηκε αντιστοιχία.
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
Πώς να χρησιμοποιήσετε το Theta Join in PostgreSQL χρησιμοποιώντας το pgAdmin
Παρακάτω είναι τα βήματα για να χρησιμοποιήσετε το Theta Join στο Postgres χρησιμοποιώντας το 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
Αριστερά εξωτερική εγγραφή
Βήμα 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) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Σύνοψη
- In PostgreSQL, χρησιμοποιούμε JOIN όταν χρειάζεται να ανακτήσουμε τιμές από περισσότερους από έναν πίνακες.
- Η ΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ είναι ο πιο βασικός τύπος JOIN. Επιστρέφει όλες τις εγγραφές όπου η καθορισμένη συνθήκη JOIN ικανοποιήθηκε.
- Η ΑΡΙΣΤΕΡΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ επιστρέφει όλες τις σειρές στον αριστερό πίνακα και μόνο τις σειρές στον άλλο πίνακα όπου η συνθήκη ένωσης έχει ικανοποιηθεί.
- Η ΔΕΞΙΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ επιστρέφει όλες τις σειρές στον δεξιό πίνακα και μόνο τις γραμμές στον άλλο πίνακα όπου η συνθήκη σύνδεσης έχει ικανοποιηθεί.
- Αυτός ο τύπος JOIN επιστρέφει όλες τις σειρές στον αριστερό πίνακα και όλες τις σειρές στον δεξιό πίνακα με nulls όπου η συνθήκη ένωσης δεν ικανοποιείται.
Κάντε λήψη της βάσης δεδομένων που χρησιμοποιείται σε αυτό το σεμινάριο