Διαφορά μεταξύ Left Join και Left Outer Join στην SQL - Όλες οι διαφορές

 Διαφορά μεταξύ Left Join και Left Outer Join στην SQL - Όλες οι διαφορές

Mary Davis

Μια βάση δεδομένων αποτελείται από μια οργανωμένη συλλογή δομημένων πληροφοριών που συνήθως αποθηκεύονται ηλεκτρονικά σε ένα υπολογιστικό σύστημα. Πολλές διαφορετικές βάσεις δεδομένων, όπως ο SQL Server, η Oracle, η PostgreSQL και η MySQL, χρησιμοποιούν συνήθως μια γλώσσα για τη διαχείριση των δεδομένων .

Μια τέτοια γλώσσα είναι γνωστή ως SQL. Η SQL διαθέτει διαφορετικές εντολές Join με τη μορφή Inner Join, Left Join και Right Join.

Δείτε επίσης: Διαφορές μεταξύ του μετρικού και του τυποποιημένου συστήματος (συζητήθηκαν) - Όλες οι διαφορές

Όπως ίσως γνωρίζετε, μια ένωση στην SQL χρησιμοποιείται για να συγκεντρώσει γραμμές από δύο ή περισσότερους πίνακες από τη σχετική στήλη Αυτό μπορεί να εγείρει ένα ερώτημα σχετικά με το τι κάνουν άλλες παραλλαγές.

Είναι λίγο μπερδεμένο, είμαι σίγουρος! Αλλά μην ανησυχείτε, θα σας δώσω μια λεπτομερή περιγραφή του τι είναι τι σημαίνουν, και ελπίζω ότι αυτό θα σας βοηθήσει να καταλάβετε καλύτερα.

Ας ξεκινήσουμε!

Τι είναι η SQL;

SQL σημαίνει Structured Query Language (Γλώσσα δομημένων ερωτήσεων). Πρόκειται για μια γλώσσα που χρησιμοποιείται από διάφορες βάσεις δεδομένων για τη συγγραφή και την αναζήτηση δεδομένων. Επιτρέπει τη διαχείριση πληροφοριών με τη χρήση πινάκων και εμφανίζει μια γλώσσα για την αναζήτηση αυτών των πινάκων και άλλων συναφών αντικειμένων, όπως προβολές, συναρτήσεις, διαδικασίες κ.λπ.

Οι Donald Chamberlin και Raymond Boyce είναι οι σχεδιαστές της SQL, με την οποία επεξεργάζονται δεδομένα. Το μοντέλο τους βασίστηκε στα έργα του Edgar Frank Codd, ο οποίος εργαζόταν για την IBM και εφηύρε τη σχεσιακή βάση δεδομένων τη δεκαετία του '70.

Αρχικά, ονομαζόταν SEQUEL, αλλά συντομεύτηκε σε SQL λόγω συγκεκριμένων θεμάτων εμπορικού σήματος. Ωστόσο, μπορείτε ακόμα να τα αποκαλείτε SEQUEL αν θέλετε.

Δείτε επίσης: Φάβα vs. Φασόλια Λίμα (Ποια είναι η διαφορά;) - Όλες οι διαφορές

Με την SQL, μπορείτε να εισαγάγετε, να διαγράψετε και να ενημερώσετε δεδομένα και να δημιουργήσετε, να διαγράψετε ή να τροποποιήσετε άλλα αντικείμενα βάσης δεδομένων. Οι τυπικές εντολές SQL είναι οι εξής " select", "delete", "insert", "update", "create" και "drop". . Αυτά μπορούν να επιτύχουν όλα όσα πρέπει να κάνει κανείς σε μια βάση δεδομένων.

Επιπλέον, αυτή η γλώσσα χρησιμοποιείται σε πολλές βάσεις δεδομένων για να βοηθήσει στο χειρισμό δεδομένων και αντικειμένων βάσεων δεδομένων. Αν σας ακούγεται περίπλοκο, εδώ είναι ένα βίντεο που εξηγεί τι είναι η SQL για αρχάριους:

Μπορεί μια βάση δεδομένων να λειτουργήσει χωρίς γλώσσα;

Γιατί χρησιμοποιούμε την SQL;

Είναι πολύ απλό. Δεν θα καταλάβουμε τις βάσεις δεδομένων χωρίς SQL. Κατά τον ίδιο τρόπο, δεν μπορούμε να δώσουμε οδηγίες στη βάση δεδομένων χωρίς αυτήν, διότι η SQL είναι ένα σύστημα που χρησιμοποιείται για την επικοινωνία με μια βάση δεδομένων.

SQL τα συστήματα εκτελούν εργασίες όπως διαγραφή, προσθήκη ή τροποποίηση Το σύστημα αυτό χρησιμοποιείται συνήθως για να ευκολότερη διαχείριση μεγάλων ποσοτήτων Μερικά τυπικά συστήματα διαχείρισης σχεσιακών βάσεων δεδομένων που χρησιμοποιούν την SQL περιλαμβάνουν Oracle, Sybase, Microsoft Access και Ingres.

Τι είναι το Inner Join και το Outer Join;

Κατ' αρχάς, ας καταλάβουμε τι είναι οι ενώσεις. Στην SQL, οι ενώσεις χρησιμοποιούνται για να συνδυάσουν τα περιεχόμενα διαφορετικών πινάκων. Μπορείτε να συνδυάσετε τα δεδομένα με πολλούς τρόπους, καθορίζοντας τον τρόπο με τον οποίο θέλετε να ενσωματωθούν τα δεδομένα και τον τύπο του Join που θέλετε να χρησιμοποιήσετε.

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

Αυτό το είδος Join απαιτούσε έναν τελεστή σύγκρισης για την αντιστοίχιση γραμμών από τους συμμετέχοντες πίνακες που υποστήριζαν ένα τυπικό πεδίο ή στήλη και των δύο πινάκων.

Η Εξωτερική σύνδεση μπορεί να επιστρέψει γραμμές που δεν ταιριάζουν σε έναν ή και στους δύο πίνακες. Βασικά, επιστρέφει όλες τις γραμμές από όλους τους πίνακες που πληρούν τις προϋποθέσεις.

Υπάρχουν πολλοί διαφορετικοί τύποι Outer Joins. Αυτές περιλαμβάνουν την Αριστερή σύνδεση, τη Δεξιά σύνδεση και την Πλήρη εξωτερική σύνδεση.

Ακολουθεί ένας πίνακας που συνοψίζει τις σημαντικές λειτουργίες των ενώσεων που είναι διαθέσιμες στην SQL:

Τύποι ενώσεων: Λειτουργία :
Εσωτερική σύνδεση Αυτό επιστρέφει γραμμές όταν υπάρχει τουλάχιστον μία αντιστοιχία και στους δύο πίνακες.
Αριστερή εξωτερική σύνδεση Αυτό επιστρέφει όλες τις γραμμές από τον αριστερό πίνακα σε συνδυασμό με τις αντίστοιχες γραμμές από τον δεξιό πίνακα.
Δεξιά εξωτερική σύνδεση Αυτό επιστρέφει όλες τις γραμμές από τον δεξιό πίνακα σε συνδυασμό με τις αντίστοιχες γραμμές από τον αριστερό πίνακα.
Πλήρης εξωτερική σύνδεση Αυτό συνδυάζει την αριστερή εξωτερική σύνδεση και τη δεξιά εξωτερική σύνδεση. Επιστρέφει γραμμές από οποιονδήποτε πίνακα όταν πληρούνται οι συνθήκες.

Αυτό δείχνει τις διαφορές μεταξύ τεσσάρων Joins στην SQL.

Διαφορά μεταξύ εσωτερικής και εξωτερικής σύνδεσης

Υπάρχουν κι άλλα. Η σημαντική διαφορά μεταξύ της εσωτερικής και της εξωτερικής σύνδεσης είναι ότι οι εσωτερικές συνδέσεις καταλήγουν συνήθως στην τομή δύο πινάκων. Αντίθετα, Οι εξωτερικές συνδέσεις έχουν ως αποτέλεσμα την ανάμειξη δύο πινάκων.

Οπότε βασικά, Εσωτερική σύνδεση έχει ως αποτέλεσμα το επικαλυπτόμενο τμήμα δύο συνόλων δεδομένων, όπως φαίνεται στην παρακάτω εικόνα. Θα συνδυάσετε μόνο τις τυπικές γραμμές και στους δύο πίνακες για την Inner Joins. Από την άλλη πλευρά, η Outer Joins επιστρέφει όλες τις εγγραφές με τιμές είτε στον αριστερό είτε στον κατάλληλο πίνακα.

Οι εξωτερικές συνδέσεις περιλαμβάνουν τις ταιριαστές γραμμές και τις μη ταιριαστές γραμμές από τους πίνακες. Επιπλέον, μια Εξωτερική σύνδεση διαφέρει από μια εσωτερική σύνδεση στο διαχείριση της συνθήκης ψευδούς ταύτισης.

Η Left Outer Join αποτελείται από Left Outer Join + Inner Join. Ενώ η Right Outer Join αποτελείται επίσης από αποτελείται από Right Outer Join + Inner Join. Η Full Outer Join αποτελείται από όλων αυτών.

Αριστερή σύνδεση (είναι το ίδιο με την αριστερή εξωτερική σύνδεση στην SQL;)

Ίσως να έχετε ακούσει και για το Left Join στην SQL; Λοιπόν, είναι ακριβώς το ίδιο Left Outer Join. Έχουν δύο διαφορετικά ονόματα για την ίδια λειτουργία.

Η αριστερή σύνδεση είναι το ίδιο με την αριστερή εξωτερική σύνδεση στην SQL, και είναι ένα. Η αριστερή σύνδεση είναι απλώς μια συντομογραφία για την αριστερή εξωτερική σύνδεση. Η λέξη "εξωτερική" απλώς καθιστά πιο ξεκάθαρο το ποια είναι η λειτουργία, αλλά και τα δύο κλειδιά εκτελούν τις ίδιες λειτουργίες.

Γιατί το Left Join ονομάζεται Left Outer Join;

Θα έχετε επιλογές να το καλέσετε με το εκτεταμένο του όνομα ή με τη συντόμευση. Εξάλλου, είναι ακριβώς το ίδιο πράγμα.

Να θυμάστε ότι αυτή η Join επιστρέφει όλες τις γραμμές του πίνακα στην αριστερή πλευρά και τις αντίστοιχες γραμμές στη δεξιά πλευρά της Join. Εάν δεν υπάρχουν ταιριαστές πλευρές στη δεξιά πλευρά, το αποτέλεσμα είναι μηδέν.

Έτσι, αν επρόκειτο να ενώσουμε δύο πίνακες, τον Α και τον Β, η SQL Left Outer Join θα επέστρεφε όλες τις γραμμές στον αριστερό πίνακα, που είναι ο Α, και όλες τις γραμμές που ταιριάζουν στον άλλο πίνακα Β στη δεξιά πλευρά. Εν ολίγοις, το αποτέλεσμα της αριστερής σύνδεσης SQL αποτελείται πάντα από τις γραμμές του αριστερού πίνακα.

Διαφορά μεταξύ Join και Left Join

Για τα βασικά, το Join ονομάζεται επίσης Inner Join, ενώ το Left Join είναι Outer Join.

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

Πότε να χρησιμοποιήσετε την αριστερή εξωτερική σύνδεση στην SQL;

Ας υποθέσουμε ότι αναζητάτε έναν τρόπο συνδυασμού διαφορετικών πινάκων. Ή, αν συνδέετε δύο πίνακες και θέλετε το σύνολο αποτελεσμάτων να περιλαμβάνει μόνο τις μη αντιστοιχισμένες γραμμές του ενός πίνακα, θα πρέπει να χρησιμοποιήσετε μια αριστερή εξωτερική ρήτρα σύνδεσης ή μια κατάλληλη εξωτερική ρήτρα σύνδεσης. Η χρήση της αριστερής εξωτερικής σύνδεσης αποτελείται από τις γραμμές που δεν αντιστοιχούν από τον πίνακα που καθορίζεται πριν από την αριστερή εξωτερική ρήτρα σύνδεσης.

Τεχνικά, η αριστερή εξωτερική σύνδεση προσδιορίζει όλες τις γραμμές και από τους δύο πίνακες που πληρούν τη συνθήκη σύνδεσης και τις μη αντιστοιχισμένες γραμμές από τον πίνακα.

Αυξάνει τον αριθμό των σειρών η αριστερή εξωτερική σύνδεση;

Αυτή είναι μια συχνή ερώτηση. Τεχνικά, είναι ναι.

Ωστόσο, Left Join μπορεί μόνο να αυξήσετε τον αριθμό των γραμμών στον αριστερό πίνακα. Και αυτό συμβαίνει μόνο όταν υπάρχουν πολλαπλές αντιστοιχίες στον δεξιό πίνακα. Επιπλέον, μπορείτε να χρησιμοποιήσετε πολλές αριστερές συνδέσεις σε ένα ερώτημα, αν αυτό είναι απαραίτητο για την ανάλυσή σας.

Left Outer Join vs. Right Outer Join

Η σημαντική διαφορά μεταξύ του Left Outer Join και του Right Outer Join είναι η εξής συνδυάζοντας μη ταιριασμένες σειρές.

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

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

Μια ρήτρα Join συνδυάζει εγγραφές ή τροποποιεί και χειρίζεται φόρμες από δύο ή περισσότερους πίνακες χρησιμοποιώντας μια συνθήκη Join. Αυτή η συνθήκη Join υποδεικνύει τον τρόπο με τον οποίο οι στήλες από τους διαφορετικούς πίνακες αντιστοιχίζονται κατά τη σύγκριση.

Για παράδειγμα, θα υπάρχει μια τυπική στήλη μεταξύ ενός πίνακα που περιέχει τον μισθό του εργαζομένου και ενός άλλου πίνακα που περιέχει τα στοιχεία του εργαζομένου. Αυτή θα μπορούσε να είναι το αναγνωριστικό του εργαζομένου, και αυτό βοηθά στην ένωση των δύο πινάκων.

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

Η μελέτη των Βάσεων Δεδομένων μπορεί να είναι δύσκολη. Αλλά είναι αρκετά απλή αν την κατανοήσετε σε βάθος.

Ποια είναι η διαφορά μεταξύ Right Join και Right Outer Join;

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

Και πάλι, το Right Join και το Right Outer Join δεν έχουν καμία συγκεκριμένη διαφορά, όπως δεν έχουν και το Left Join και το Left Outer Join. Εν ολίγοις, ο όρος Right Join είναι απλά μια συντομογραφία για το Right Outer Join.

Η λέξη-κλειδί "outer" είναι προαιρετική. Και οι δύο εκτελούν την ίδια εργασία, συνδυάζοντας τα σύνολα δεδομένων και τους πίνακες.

Γιατί να χρησιμοποιήσετε το Right Join αντί του Left Join;

Γενικά, οι Δεξιές Εξωτερικές Ενώσεις δεν χρησιμοποιούνται τόσο συχνά, επειδή μπορείτε πάντα να τις αντικαταστήσετε με Αριστερές Εξωτερικές Ενώσεις και δεν χρειάζεται να εκτελέσετε καμία πρόσθετη λειτουργία.

Κάποιος θα σκεφτόταν να χρησιμοποιήσει το Right Join αντί για το Left Join όταν προσπαθεί να κάνει την SQL σας πιο αυτο-τεκμηριωμένη.

Μπορείτε να χρησιμοποιήσετε το Αριστερή σύνδεση για να αντιμετωπίσετε ερωτήματα που έχουν μηδενικές γραμμές στην εξαρτημένη πλευρά. Θα χρησιμοποιούσατε το Δεξιά ένωση για ερωτήσεις που δημιουργούν μηδενικές γραμμές στην ανεξάρτητη πλευρά.

Το Δεξιά εξωτερική σύνδεση είναι επίσης χρήσιμη όταν πρέπει να συνδυάσετε έναν πίνακα με την τομή πολλών άλλων πινάκων.

Διαφορά μεταξύ Join και Union στην SQL

Η διαφορά μεταξύ Join και Union είναι ότι η Union χρησιμοποιείται για το συνδυασμό του συνόλου αποτελεσμάτων δύο ή περισσότερων εντολών SELECT.

Ενώ η Join συνδυάζει δεδομένα από πολλούς πίνακες ανάλογα με τη συνθήκη που ταιριάζει, τα δεδομένα που συνδυάζονται με τις δηλώσεις Join οδηγούν σε νέες στήλες.

Ο συνδυασμός των δεδομένων με τη χρήση της εντολής Union οδηγεί σε νέες διακριτές γραμμές από τα σύνολα με ίσο αριθμό στηλών.

Τελικές σκέψεις

Εν κατακλείδι, υπάρχει καμία διαφορά μεταξύ LEFT JOIN και LEFT OUTER JOIN Αυτό ισχύει επίσης για τη Δεξιά Ένωση και τη Δεξιά Εξωτερική Ένωση.

Και τα δύο πλήκτρα εκτελούν τις ίδιες λειτουργίες και " outer" είναι απλώς μια προαιρετική λέξη-κλειδί για χρήση. Ορισμένοι συνιστούν τη χρήση του μόνο και μόνο επειδή διευκρινίζει ότι δημιουργείτε ένα Outer Join.

Έτσι, τελικά, το αν το προσδιορίζετε ή όχι δεν έχει καμία απολύτως διαφορά.

Άλλα ενδιαφέροντα άρθρα:

    Κάντε κλικ εδώ για να μάθετε περισσότερα σχετικά με αυτές τις διαφορές με πιο συνοπτικό τρόπο.

    Mary Davis

    Η Mary Davis είναι συγγραφέας, δημιουργός περιεχομένου και μανιώδης ερευνήτρια που ειδικεύεται στην ανάλυση σύγκρισης σε διάφορα θέματα. Με πτυχίο στη δημοσιογραφία και πάνω από πέντε χρόνια εμπειρίας στον τομέα, η Μαίρη έχει πάθος να παρέχει αμερόληπτες και άμεσες πληροφορίες στους αναγνώστες της. Η αγάπη της για το γράψιμο ξεκίνησε όταν ήταν μικρή και ήταν η κινητήρια δύναμη πίσω από την επιτυχημένη καριέρα της στο γράψιμο. Η ικανότητα της Mary να ερευνά και να παρουσιάζει τα ευρήματα σε μια κατανοητή και ελκυστική μορφή την έχει κάνει αγαπητή στους αναγνώστες σε όλο τον κόσμο. Όταν δεν γράφει, η Μαίρη της αρέσει να ταξιδεύει, να διαβάζει και να περνά χρόνο με την οικογένεια και τους φίλους.