Ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα μιας σύνδεσης ή ενός δευτερεύοντος ερωτήματος;

...

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

Ένα δευτερεύον ερώτημα είναι ένα ερώτημα μέσα σε ένα άλλο ερώτημα. Ένα δευτερεύον ερώτημα μπορεί επίσης να περιέχει ένα άλλο δευτερεύον ερώτημα. Αυτά λέγεται ότι είναι «φωλιασμένα» υποερωτήματα. Μια ένωση είναι όταν αναφέρονται δύο ή περισσότεροι πίνακες στον όρο "Από" του ερωτήματος. Διαφορετικές μηχανές βάσης δεδομένων μπορεί να βελτιστοποιούν τα υποερωτήματα και τις ενώσεις με διαφορετικό τρόπο. Για παράδειγμα, ο βελτιστοποιητής του DB2 θα μετατρέψει ένα υποερώτημα σε ένωση εάν πληρούνται ορισμένα κριτήρια. Σε ορισμένες περιπτώσεις, μια ένωση αποφέρει καλύτερη απόδοση από ένα δευτερεύον ερώτημα.

Τι κάνει ένα υποερώτημα

Ένα δευτερεύον ερώτημα είναι μια δήλωση "ΕΠΙΛΟΓΗ" εντός της ρήτρας "WHERE" ή "HAVING" μιας εξωτερικής δήλωσης "INSERT", "UPDATE", "MERGE" ή "DELETE". Το υποερώτημα ονομάζεται επίσης "εσωτερικό ερώτημα" ή "εσωτερική επιλογή". Το υποερώτημα μπορεί να έχει μια ρήτρα "FROM" με έναν ή περισσότερους πίνακες και μπορεί προαιρετικά να έχει μια ρήτρα "WHERE", "GROUP BY" ή "HAVING". Περικλείεται πάντα σε παρένθεση.

Το βίντεο της ημέρας

Πλεονεκτήματα και μειονεκτήματα των Υποερωτημάτων

Τα δευτερεύοντα ερωτήματα είναι πλεονεκτήματα επειδή δομούν το ερώτημα ώστε να απομονώνει κάθε μέρος της δήλωσης, εκτελέστε την ίδια λειτουργία που συνήθως απαιτούσε πολύπλοκες ενώσεις και ενώσεις και είναι πιο εύκολο να το κάνετε ανάγνωση. Τα υποερωτήματα ήταν ακόμη η βάση για το όνομα "Structured Query Language" (SQL) λόγω της εύκολα αναγνώσιμης δομής τους. Ένα μειονέκτημα είναι ότι δεν μπορείτε να τροποποιήσετε έναν πίνακα και να επιλέξετε από τον ίδιο πίνακα σε ένα υποερώτημα στην ίδια πρόταση SQL. Τα δευτερεύοντα ερωτήματα μπορεί επίσης να διαρκέσουν περισσότερο χρόνο για να εκτελεστούν από μια σύνδεση, λόγω του τρόπου με τον οποίο τα επεξεργάζεται το εργαλείο βελτιστοποίησης της βάσης δεδομένων.

Τι κάνει μια συμμετοχή

Τα περισσότερα υποερωτήματα μπορούν να ξαναγραφτούν ως ενώσεις και οι περισσότερες ενώσεις μπορούν να ξαναγραφτούν ως υποερωτήματα. Μια ένωση ορίζει δύο ή περισσότερους πίνακες από μια σχετική στήλη. Οι πίνακες συνήθως ενώνονται σε πρωτεύοντα και ξένα κλειδιά. Για παράδειγμα, ένας πίνακας υπαλλήλων μπορεί να έχει ένα πρωτεύον κλειδί μιας στήλης αναγνωριστικού υπαλλήλου, ενώ ένας πίνακας φύλλου χρόνου έχει επίσης μια στήλη αναγνωριστικού υπαλλήλου που είναι ξένο κλειδί στον πίνακα υπαλλήλων. Η σύνδεση SQL μπορεί να γραφτεί ως "WHERE staff.empid = timesheet.empid" ή "FROM εργαζόμενος JOIN φύλλο χρόνου ON (employee.empid = timesheet.empid)."

Πλεονεκτήματα και μειονεκτήματα των συνδέσεων

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