Σκοπός:
* Συνδυάστε δεδομένα από διαφορετικούς πίνακες: Ο κύριος στόχος του `join` είναι να δημιουργηθεί ένα μόνο σύνολο αποτελεσμάτων που περιλαμβάνει δεδομένα από δύο ή περισσότερους πίνακες. Αυτό είναι απαραίτητο όταν η βάση δεδομένων σας έχει σχετικές πληροφορίες αποθηκευμένες σε πολλούς πίνακες.
* Δημιουργία σχέσεων: `Join` ορίζει πώς πρέπει να συνδεθούν τα δεδομένα από τους διαφορετικούς πίνακες. Αυτό γίνεται με τον προσδιορισμό μιας κοινής στήλης (ή στήλες) που υπάρχει και στους δύο πίνακες.
Τύποι συνδέσεων:
Το SQL προσφέρει διάφορους τύπους συνδέσεων, το καθένα με τη δική του συμπεριφορά:
1. Εσωτερική συμμετοχή:
* Ορισμός: Επιστρέφει μόνο σειρές όπου η κατάσταση σύνδεσης ικανοποιείται και στους δύο πίνακες. Ουσιαστικά, βρίσκει τις αντίστοιχες σειρές με βάση την κατάσταση σύνδεσης.
* Παράδειγμα: Ας πούμε ότι έχετε έναν πίνακα "πελάτες" και έναν πίνακα "παραγγελιών". Μια `Inner Join 'στη στήλη` CustomerId' θα επέστρεψε μόνο τις παραγγελίες που έθεσαν οι πελάτες που υπάρχουν και στα δύο τραπέζια.
2. Αριστερά ένωση (ή αριστερή εξωτερική ένωση):
* Ορισμός: Επιστρέφει όλες τις σειρές από το αριστερό τραπέζι (εκείνη που αναφέρθηκε πριν από το `left join ') και τις αντίστοιχες σειρές από το δεξιό τραπέζι. Εάν δεν υπάρχει αντιστοίχιση στον σωστό πίνακα, περιλαμβάνει τιμές «null» για τις σωστές στήλες πίνακα.
* Παράδειγμα: Χρησιμοποιώντας τα τραπέζια `πελάτες 'και' Orders ', ένα` left join' στο `customerid 'θα επιστρέψει όλους τους πελάτες, ακόμη και αν δεν έχουν θέσει καμία παραγγελία. Θα συμπεριληφθούν οι παραγγελίες για τους υπάρχοντες πελάτες, ενώ οι πελάτες που δεν έχουν παραγγελία θα έχουν τιμές «null» για στήλες που σχετίζονται με την παραγγελία.
3. Δεξιά ένταξη (ή δεξιά εξωτερική ένωση):
* Ορισμός: Επιστρέφει όλες τις σειρές από το δεξιό τραπέζι και ταιριάζει σειρές από το αριστερό τραπέζι. Παρόμοια με το `left join 'αλλά αντιστράφηκε. Εάν δεν υπάρχει αντιστοίχιση στον αριστερό τραπέζι, περιλαμβάνει τιμές «null» για τις στήλες του αριστερού πίνακα.
* Παράδειγμα: Χρησιμοποιώντας τα τραπέζια `πελάτες 'και' Orders ', ένα` Right Join' στο `CustomerId 'θα επιστρέψει όλες τις παραγγελίες, ακόμη και αν ο αντίστοιχος πελάτης δεν υπάρχει στον πίνακα« πελάτες ».
4. Πλήρης ένωση (ή πλήρης εξωτερική ένωση):
* Ορισμός: Επιστρέφει όλες τις σειρές και από τους δύο πίνακες, ανεξάρτητα από το αν έχουν έναν αγώνα στον άλλο πίνακα. Περιλαμβάνει τιμές `null` για στήλες στον πίνακα όπου δεν υπάρχει σειρά.
* Παράδειγμα: Χρησιμοποιώντας τα τραπέζια `πελάτες 'και` παραγγελίες', μια `Full Join 'στο` CustomerId' θα επιστρέψει όλους τους πελάτες και όλες τις παραγγελίες. Εάν ένας πελάτης δεν έχει τοποθετήσει μια παραγγελία, οι στήλες που σχετίζονται με την παραγγελία θα ήταν «null». Ομοίως, εάν μια παραγγελία δεν διαθέτει έναν αντίστοιχο πελάτη, οι στήλες που σχετίζονται με τον πελάτη θα ήταν «null».
Σύνταξη:
`` sql
Επιλέξτε Column_List
Από τον Πίνακα1
Εγγραφείτε στον πίνακα2
Σε join_condition;
`` `
* column_list: Οι στήλες που θέλετε να επιλέξετε από τους συνδυασμένους πίνακες.
* Πίνακας1, Πίνακας 2: Τα ονόματα των πινάκων που θέλετε να συμμετάσχετε.
* join_condition: Μια έκφραση που καθορίζει τη σχέση μεταξύ των πινάκων. Αυτό συνήθως περιλαμβάνει τη σύγκριση των στηλών και των δύο πινάκων που χρησιμοποιούν χειριστές όπως `=`, `<`, `>`, κλπ.
Παράδειγμα:
`` sql
Επιλέξτε πελάτες.customerid, πελάτες.Customername, Orders.ORDERID, ORDERS.ORDERDATE
Από πελάτες
Εσωτερική εντολή συμμετοχής
Σε πελάτες.CustomerId =orders.customerid;
`` `
Αυτό το ερώτημα θα επιστρέψει ένα σύνολο αποτελεσμάτων που περιέχει το `customerid`, το` customername`, το orderid 'και το `orderdate' για όλες τις παραγγελίες που έθεσαν οι πελάτες που υπάρχουν και στα δύο τραπέζια` `Order '.
Βασικές εκτιμήσεις:
* Τύπος εγγραφής: Επιλέξτε τον κατάλληλο τύπο σύνδεσης με βάση τα δεδομένα που θέλετε να ανακτήσετε.
* ΣΥΝΔΕΣΗ: Βεβαιωθείτε ότι η κατάσταση σύνδεσης αντικατοπτρίζει με ακρίβεια τη σχέση μεταξύ των πινάκων.
* απόδοση: Οι συγκολλητικές ενώσεις μπορούν να επηρεάσουν την απόδοση των ερωτημάτων, επομένως να τις βελτιστοποιήσουν για αποτελεσματικότητα.
Συνοπτικά:
Η ρήτρα `join` είναι ένα θεμελιώδες μέρος του SQL που σας επιτρέπει να συνδυάσετε και να αναλύετε δεδομένα από πολλούς πίνακες. Η κατανόηση των διαφορετικών τύπων και της σύνταξής του είναι απαραίτητη για τη σύνταξη αποτελεσματικών και αποτελεσματικών ερωτημάτων SQL.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα