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;

Εξετάστε τους ακόλουθους πίνακες της βάσης δεδομένων επίδειξης:

Βιβλίο:

PostgreSQL Εγγραφή Θήτα

Τιμή:

PostgreSQL Εγγραφή Θήτα

Θέλουμε να δούμε το όνομα κάθε βιβλίου και την αντίστοιχη Τιμή. Μπορούμε να εκτελέσουμε την ακόλουθη εντολή:

SELECT Book.name, Price.price 
FROM Book 
INNER JOIN Price 
ON Book.id = Price.id;   

Αυτό θα επιστρέψει τα ακόλουθα:

PostgreSQL Εγγραφή Θήτα

Μόνο 3 σειρές ικανοποιούσαν την συνθήκη σύνδεσης.

EQUI Εγγραφείτε

Η ένωση EQUI μας παρέχει έναν τρόπο ένωσης δύο πινάκων με βάση τη σχέση πρωτεύοντος κλειδιού/ξένου κλειδιού. Για παράδειγμα:

SELECT *
FROM Book 
JOIN Price ON Book.id = Price.id;

Αυτό θα επιστρέψει τα ακόλουθα:

PostgreSQL EQUI Εγγραφείτε

Έχουν επιστραφεί εγγραφές και από τους δύο πίνακες με βάση τις κοινές στήλες, δηλαδή τη στήλη id.

Φυσική συμμετοχή

Αυτός ο τύπος σύνδεσης μας παρέχει έναν άλλο τρόπο σύνταξης μιας σύνδεσης EQUI. Μπορούμε να βελτιώσουμε το προηγούμενο παράδειγμά μας προσθέτοντας τη λέξη-κλειδί NATURAL όπως φαίνεται παρακάτω:

SELECT *
FROM Book
NATURAL JOIN Price;

Αυτό θα επιστρέψει τα ακόλουθα:

PostgreSQL Φυσική συμμετοχή

Έχει επιστραφεί μόνο μία στήλη αναγνωριστικού. Το 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;   

Αυτό επιστρέφει τα ακόλουθα:

Postgres Left Outer Join

Και οι 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;

Αυτό επιστρέφει τα ακόλουθα:

Postgres Right Outer Join

Όλες οι σειρές στον πίνακα Τιμή έχουν επιστραφεί. Επιστράφηκαν μόνο οι σειρές στον πίνακα Βιβλίο που πληρούσαν την συνθήκη σύνδεσης. Το 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;

Αυτό επιστρέφει τα ακόλουθα:

Postgres Full Outer Join

Όλες οι σειρές από όλους τους πίνακες έχουν επιστραφεί, με μηδενικές, όπου δεν βρέθηκε αντιστοίχιση.

Χρήση του pgAdmin

Οι παραπάνω εργασίες μπορούν να πραγματοποιηθούν στο pgAdmin ως εξής:

pgAdmin Inner Join

Πώς να χρησιμοποιήσετε το Theta Join in PostgreSQL χρησιμοποιώντας το pgAdmin

Παρακάτω είναι τα βήματα για να χρησιμοποιήσετε το Theta Join στο Postgres χρησιμοποιώντας το pgAdmin:

Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin

Ανοίξτε το pgAdmin και συνδεθείτε χρησιμοποιώντας τα διαπιστευτήριά σας

Βήμα 2) Δημιουργία βάσης δεδομένων επίδειξης

  1. Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
  2. Κάντε κλικ στο Demo.

pgAdmin Inner Join

Βήμα 3) Πληκτρολογήστε το ερώτημα

Πληκτρολογήστε το παρακάτω ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

SELECT Book.name, Price.price 
FROM Book 
INNER JOIN Price 
ON Book.id = Price.id;   

Βήμα 4) Εκτελέστε το ερώτημα

Κάντε κλικ στο κουμπί Εκτέλεση

pgAdmin Inner Join

Θα πρέπει να επιστρέψει τα ακόλουθα:

pgAdmin Inner Join

EQUI Εγγραφείτε

Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.

Βήμα 2)

  1. Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
  2. Κάντε κλικ στο Demo.

Εγγραφή pgAdmin EQUI

Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

SELECT *
FROM Book 
JOIN Price ON Book.id = Price.id;

Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.

Εγγραφή pgAdmin EQUI

Θα πρέπει να επιστρέψει τα ακόλουθα:

Εγγραφή pgAdmin EQUI

Φυσική συμμετοχή

Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.

Βήμα 2)

  1. Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
  2. Κάντε κλικ στο Demo.

pgAdmin Natural Join

Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

SELECT *
FROM Book 
NATURAL JOIN Price;

Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.

pgAdmin Natural Join

Θα πρέπει να επιστρέψει τα ακόλουθα:

pgAdmin Natural Join

pgAdmin Simple Inner Join

Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.

Βήμα 2)

  1. Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
  2. Κάντε κλικ στο Demo.

pgAdmin Simple Inner Join

Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

SELECT Book.name, Price.price 
FROM Book 
INNER JOIN Price 
ON Book.id = Price.id;   

Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.

pgAdmin Simple Inner Join

Θα πρέπει να επιστρέψει τα ακόλουθα:

pgAdmin Simple Inner Join

pgAdmin Outer Join

Αριστερά εξωτερική εγγραφή

Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.

Βήμα 2)

  1. Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
  2. Κάντε κλικ στο Demo.

pgAdmin Left Outer Join

Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

SELECT Book.name, Price.price 
FROM Book   
LEFT JOIN Price 
ON Book.id = Price.id;   

Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.

pgAdmin Left Outer Join

Θα πρέπει να επιστρέψει τα ακόλουθα:

pgAdmin Left Outer Join

Δεξιά εξωτερική συμμετοχή

Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.

Βήμα 2)

  1. Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
  2. Κάντε κλικ στο Demo.

pgAdmin Δεξιά εξωτερική σύνδεση

Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

SELECT Book.name, Price.price 
FROM Book
RIGHT JOIN Price 
ON Book.id = Price.id;

Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.

pgAdmin Δεξιά εξωτερική σύνδεση

Θα πρέπει να επιστρέψει τα ακόλουθα:

pgAdmin Δεξιά εξωτερική σύνδεση

Πλήρης εξωτερική συμμετοχή

Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.

Βήμα 2)

  1. Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στην επιλογή Βάσεις δεδομένων.
  2. Κάντε κλικ στο Demo.

pgAdmin Full Outer Join

Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

SELECT Book.name, Price.price 
FROM Book
FULL OUTER JOIN Price 
ON Book.id = Price.id;

Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.

pgAdmin Full Outer Join

Θα πρέπει να επιστρέψει τα ακόλουθα:

pgAdmin Full Outer Join

Σύνοψη

  • In PostgreSQL, χρησιμοποιούμε JOIN όταν χρειάζεται να ανακτήσουμε τιμές από περισσότερους από έναν πίνακες.
  • Η ΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ είναι ο πιο βασικός τύπος JOIN. Επιστρέφει όλες τις εγγραφές όπου η καθορισμένη συνθήκη JOIN ικανοποιήθηκε.
  • Η ΑΡΙΣΤΕΡΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ επιστρέφει όλες τις σειρές στον αριστερό πίνακα και μόνο τις σειρές στον άλλο πίνακα όπου η συνθήκη ένωσης έχει ικανοποιηθεί.
  • Η ΔΕΞΙΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ επιστρέφει όλες τις σειρές στον δεξιό πίνακα και μόνο τις γραμμές στον άλλο πίνακα όπου η συνθήκη σύνδεσης έχει ικανοποιηθεί.
  • Αυτός ο τύπος JOIN επιστρέφει όλες τις σειρές στον αριστερό πίνακα και όλες τις σειρές στον δεξιό πίνακα με nulls όπου η συνθήκη ένωσης δεν ικανοποιείται.

Κάντε λήψη της βάσης δεδομένων που χρησιμοποιείται σε αυτό το σεμινάριο