Επιστροφή στο blog

Μια επισκόπηση των ερωτημάτων στη MySQL

Μια επισκόπηση των ερωτημάτων στη MySQL

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

Τι είναι μια βάση δεδομένων;

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

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

Σε αυτόν τον οδηγό, θα σας εισαγάγουμε στη MySQL και θα συζητήσουμε πώς να εργάζεστε με ερωτήματα στη MySQL. Ας ξεκινήσουμε!

Προαπαιτούμενα

Για να παρακολουθήσετε αυτό το σεμινάριο, θα χρειαστείτε τα ακόλουθα:

Βήμα 1 — Δημιουργία και Ρύθμιση μιας Βάσης Δεδομένων

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

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

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

Πρώτα, ανοίξτε τη MySQL ως χρήστης root:

Στη συνέχεια, δημιουργήστε μια βάση δεδομένων εκτελώντας την ακόλουθη εντολή:

Στη συνέχεια, ας χρησιμοποιήσουμε τη βάση δεδομένων μας χρησιμοποιώντας την ακόλουθη εντολή:

Μετά από αυτό, θα δημιουργήσουμε πίνακες στη βάση δεδομένων μας. Ονομάστε τον πρώτο πίνακα ως celebration. Ο πίνακάς μας θα έχει στήλες για τα ονόματα των φίλων μας (name), τα τουρνουά που έχουν κερδίσει (wins) καθώς και μια στήλη για τον καλύτερο χρόνο (time):

Στη συνέχεια, θα γεμίσουμε τον πίνακά μας με δεδομένα:

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

Λίστα

Λεπτομέρεια

name:

Αποθηκεύστε το όνομα κάθε φίλου.

birthdate:

Παρακολουθεί την ημερομηνία γέννησης κάθε ατόμου.

activity:

Κρατάει αρχείο με την αγαπημένη τους δραστηριότητα.

Destination:

Αποθηκεύει τις πληροφορίες για τον αγαπημένο προορισμό κάθε ατόμου.

meal:

Παρακολουθεί το αγαπημένο γεύμα ενός ατόμου.

Γεμίστε τον πίνακα με δεδομένα:

Έχετε πλέον ολοκληρώσει τη ρύθμιση της βάσης δεδομένων σας.

Βήμα 2 — Ξεκινώντας με τις δηλώσεις SELECT

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

Τα ερωτήματα ακολουθούν την παρακάτω σύνταξη:

Θα χρησιμοποιήσουμε τη σύνταξη του ερωτήματος για να επιστρέψουμε τη στήλη meal από τον πίνακα vacation :

Το αποτέλεσμά μας θα είναι το εξής:

Μπορείτε επίσης να επιλέξετε πολλαπλές στήλες χρησιμοποιώντας κόμμα για να τις διαχωρίσετε:

Αποτέλεσμα:

Μπορείτε επίσης να χρησιμοποιήσετε έναν αστερίσκο (*) αν θέλετε να αναπαραστήσετε όλες τις στήλες του πίνακα:

Αποτέλεσμα:

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

Είναι ένας τελεστής σύγκρισης που ορίζει πώς πρέπει να συγκριθεί η καθορισμένη στήλη με την τιμή. Οι συνήθεις τελεστές σύγκρισης SQL περιλαμβάνουν:

Τελεστής

Χρήση

=

Ισότητα

!=

Ανισότητα

<

Μικρότερο από

>

Μεγαλύτερο από

<=

Μικρότερο ή ίσο με

>=

Μεγαλύτερο ή ίσο με

BETWEEN

Ελέγχει αν η τιμή βρίσκεται εντός του δεδομένου εύρους.

IN

Ελέγχει αν η τιμή μιας γραμμής περιέχεται σε ένα σύνολο καθορισμένων τιμών.

EXISTS

Ελέγχει αν υπάρχει μια γραμμή

LIKE

Ελέγχει αν μια τιμή ταιριάζει με την καθορισμένη συμβολοσειρά

IS NULL

Ελέγχει για τιμές null

IS NOT NULL

Ελέγχει για όλες τις τιμές εκτός από NULL

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

Το ερώτημα θα επιστρέψει στη συνέχεια:

Η SQL υποστηρίζει τη χρήση χαρακτήρων μπαλαντέρ, οι οποίοι είναι ιδιαίτερα χρήσιμοι σε WHERE ρήτρες. Τα σύμβολα ποσοστού ( %) υποδηλώνουν μηδέν ή περισσότερους άγνωστους χαρακτήρες, ενώ οι κάτω παύλες ( _) υποδηλώνουν έναν μόνο άγνωστο χαρακτήρα. Αυτά είναι χρήσιμα εάν θέλετε να βρείτε μια συγκεκριμένη καταχώριση σε έναν πίνακα αλλά δεν είστε σίγουροι για την καταχώριση.

Για παράδειγμα, αν είχατε ξεχάσει τον αγαπημένο προορισμό ενός φίλου και γνωρίζατε μόνο το γράμμα από το οποίο ξεκινά, για παράδειγμα, “m.” Μπορείτε να βρείτε το όνομα του προορισμού χρησιμοποιώντας το ακόλουθο ερώτημα:

Το ερώτημα θα επιστρέψει:

Όταν εργάζεστε με βάσεις δεδομένων, ενδέχεται να συναντήσετε στήλες ή πίνακες με σχετικά μεγάλα ή δυσανάγνωστα ονόματα. Σε αυτές τις περιπτώσεις, μπορείτε να κάνετε τα ονόματα πιο ευανάγνωστα χρησιμοποιώντας τη λέξη-κλειδί AS για να δημιουργήσετε ένα ψευδώνυμο. Τα ψευδώνυμα που δημιουργούνται με το AS ισχύουν μόνο για τη διάρκεια του ερωτήματος για το οποίο δημιουργήθηκαν:

Βήμα 3 — Εισαγωγή στις Συγκεντρωτικές Συναρτήσεις

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

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

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

MIN χρησιμοποιείται για την εύρεση της μικρότερης τιμής μέσα σε μια καθορισμένη στήλη:

Το ερώτημα θα εμφανίσει:

MAX χρησιμοποιείται για την εύρεση της μεγαλύτερης αριθμητικής τιμής σε μια δεδομένη στήλη:

Το αναμενόμενο αποτέλεσμα είναι:

Τόσο η συνάρτηση MIN όσο και η MAX μπορούν να χρησιμοποιηθούν σε αριθμητικά και αλφαβητικά δεδομένα. Όταν εφαρμόζεται σε μια στήλη τιμών συμβολοσειράς, η συνάρτηση MIN επιστρέφει την πρώτη τιμή αλφαβητικά.

Η συνάρτηση MIN επιστρέφει την πρώτη τιμή αλφαβητικά:

Ορίστε ποιο θα είναι το αποτέλεσμα:

Η συνάρτηση MAX επιστρέφει την τελευταία τιμή αλφαβητικά:

Αυτό θα είναι το αποτέλεσμα:

Βήμα 4 — Διαχείριση αποτελεσμάτων ερωτημάτων

Ένας άλλος δημοφιλής όρος που χρησιμοποιείται είναι ο GROUP BY όρος. Χρησιμοποιείται κατά την εκτέλεση μιας συγκεντρωτικής συνάρτησης σε μια στήλη αλλά σε σχέση με αντίστοιχες τιμές σε μια άλλη:

Το αποτέλεσμα θα είναι:

Για να ταξινομήσετε τα αποτελέσματα του ερωτήματος, χρησιμοποιήστε τον ORDER BY όρο. Οι αριθμητικές τιμές ταξινομούνται σε αύξουσα σειρά από προεπιλογή, ενώ οι τιμές κειμένου ταξινομούνται αλφαβητικά. Το παρακάτω ερώτημα εμφανίζει τις στήλες name και birthdate, αλλά ταξινομεί τα αποτελέσματα κατά birthdate:

Το αποτέλεσμα θα είναι το εξής:

Το αποτέλεσμα είναι σε αύξουσα σειρά· για να ταξινομήσετε σε φθίνουσα σειρά, κλείστε το ερώτημα με τη λέξη DESC:

Ρίξτε μια ματιά στο αποτέλεσμα:

Ο HAVING όρος προστέθηκε στη SQL για να παρέχει παρόμοια λειτουργικότητα με τον WHERE όρο, ενώ παράλληλα είναι συμβατός με συγκεντρωτικές συναρτήσεις. Η διαφορά μεταξύ αυτών των δύο όρων είναι ότι ο WHERE αναφέρεται σε μεμονωμένες εγγραφές και ο HAVING αναφέρεται σε ομαδοποιημένες εγγραφές. Για το σκοπό αυτό, ο όρος GROUP BY πρέπει να είναι παρών όποτε χρησιμοποιείται ένας όρος HAVING:

Το ερώτημα θα εμφανίσει:

Το COUNT είναι 1 σε όλα επειδή δεν υπάρχουν δύο φίλοι που να τους αρέσει η ίδια δραστηριότητα.

Βήμα 5 — Ερώτημα σε πολλαπλούς πίνακες

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

SELECT δηλώσεις που περιλαμβάνουν έναν JOIN όρο ακολουθούν την παρακάτω σύνταξη:

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

Το αποτέλεσμα θα είναι:

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

Στη συνέχεια, εκτελέστε ξανά τη SELECT δήλωση με τη JOIN ρήτρα:

Επειδή ο πίνακας celebration δεν έχει καταχώριση για τον Peter και ο πίνακας vacation δεν έχει καταχώριση για την Ella, αυτές οι εγγραφές απουσιάζουν.

Μπορούμε να επιστρέψουμε όλες τις εγγραφές από έναν από τους πίνακες χρησιμοποιώντας μια εξωτερική JOIN ρήτρα. Αυτή μπορεί να είναι είτε μια LEFT JOIN ή μια RIGHT JOIN. Μια LEFT JOIN επιστρέφει όλες τις εγγραφές από τον αριστερό πίνακα και μόνο τις αντίστοιχες εγγραφές από τον δεξιό πίνακα. Ο αριστερός πίνακας στο πλαίσιο των εξωτερικών συνδέσεων είναι αυτός που αναφέρεται από τη FROM ρήτρα, και ο δεξιός πίνακας είναι οποιοσδήποτε πίνακας αναφέρεται μετά τη δήλωση JOIN statement.

Εκτελέστε ξανά το ερώτημα αλλά χρησιμοποιήστε μια LEFT JOIN ρήτρα:

Η εντολή θα επιστρέψει όλες τις εγγραφές από τον αριστερό πίνακα ( celebration) ακόμη και αν δεν έχει αντίστοιχη εγγραφή στον δεξιό πίνακα. Όταν δεν υπάρχει αντίστοιχη εγγραφή στον δεξιό πίνακα, επιστρέφεται ως NULL:

Αυτή είναι τώρα η RIGHT JOIN ρήτρα:

Όλες οι τιμές από τον δεξιό πίνακα θα επιστραφούν (vacation). Επειδή η birthdate του Peter είναι καταχωρισμένη στον δεξιό πίνακα και όχι στον αριστερό πίνακα, οι στήλες name και wins θα επιστρέψουν NULL τιμές σε αυτές τις σειρές:

Μπορείτε να χρησιμοποιήσετε τη UNION πρόταση αντί για JOIN για να κάνετε ερώτημα σε εγγραφές από πολλούς πίνακες. Ο UNION τελεστής διαφέρει από την JOIN πρόταση στο ότι συνδυάζει τα αποτελέσματα δύο δηλώσεων SELECT σε μία μόνο στήλη αντί να εκτυπώνει αποτελέσματα από πολλούς πίνακες ως μοναδικές στήλες χρησιμοποιώντας μία μόνο δήλωση SELECT.

Μπορείτε να εκτελέσετε αυτό το ερώτημα για να το δείξετε:

Το ερώτημα καταργεί τις διπλότυπες εγγραφές. Αυτή είναι η προεπιλεγμένη συμπεριφορά του UNION τελεστή:

Για να επιστρέψετε όλες τις εγγραφές (συν τα διπλότυπα) χρησιμοποιήστε τον UNION ALL τελεστή:

Έξοδος:

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

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

Το ερώτημα θα επιστρέψει:

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

Το ερώτημα θα επιστρέψει:

Αυτή η δήλωση περιέχει ένα υποερώτημα μέσα σε ένα υποερώτημα.

Συμπέρασμα

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

Επιπλέον, υπάρχουν πολλοί οδηγοί για βάσεις δεδομένων που μπορείτε να εξερευνήσετε από το blog:

Καλή υπολογιστική!

author

Preslav Dobrev

Συγγραφέας · CloudSigma

Ο Preslav Dobrev είναι Δημιουργικός Σχεδιαστής στην CloudSigma, με εστίαση στη συνεπή επιχειρηματική ταυτότητα μέσω παραδοσιακών και καινοτόμων καναλιών μάρκετινγκ. Διαθέτει την ικανότητα να συνδυάζει το καλλιτεχνικό όραμα με το στρατηγικό μάρκετινγκ για τη δημιουργία εντυπωσιακών αφηγήσεων επωνυμίας.

Σχόλια

Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.