MySQL ΕΠΙΛΟΓΗ Δήλωση με Παραδείγματα
⚡ Έξυπνη Σύνοψη
The MySQL Η εντολή SELECT ανακτά γραμμές από έναν ή περισσότερους πίνακες και κάθε παρακάτω παράδειγμα εκτελείται στη βάση δεδομένων δειγμάτων myflix, μετακινούμενο από το απλό ερώτημα αστεριού σε εκφράσεις, ψευδώνυμα στηλών και συναρτήσεις συμβολοσειρών.

Τι είναι το ερώτημα SELECT; MySQL?
Ερώτημα SELECT χρησιμοποιείται για την ανάκτηση δεδομένων από το MySQL βάση δεδομένων. Οι βάσεις δεδομένων αποθηκεύουν δεδομένα για μελλοντική ανάκτηση. Ο σκοπός του MySQL Η συνάρτηση SELECT επιστρέφει μία ή περισσότερες γραμμές από τους πίνακες της βάσης δεδομένων που ταιριάζουν με ένα δεδομένο κριτήριο. Ένα ερώτημα SELECT μπορεί να χρησιμοποιηθεί σε μια γλώσσα scripting όπως PHP ή Ruby ή μπορείτε να το εκτελέσετε από τη γραμμή εντολών.
Επειδή η εντολή SELECT είναι η εντολή που θα εκτελείτε πιο συχνά, καλό είναι να μάθετε τη σύνταξή της πριν αγγίξετε τα δείγματα δεδομένων.
Σύνταξη πρότασης SQL SELECT
Η εντολή SELECT είναι η πιο συχνά χρησιμοποιούμενη εντολή SQL και έχει την ακόλουθη γενική σύνταξη:
SELECT [DISTINCT|ALL] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition] [GROUP BY fieldName(s)] [HAVING condition] [ORDER BY fieldName(s)];
ΕΔΩ
- SELECT είναι η λέξη-κλειδί SQL που ενημερώνει τη βάση δεδομένων ότι θέλετε να ανακτήσετε δεδομένα.
- [ΔΙΑΚΡΙΤΙΚΟ | ΟΛΑ] είναι προαιρετικές λέξεις-κλειδιά που βελτιώνουν τα αποτελέσματα που επιστρέφονται από την πρόταση SQL SELECT. Εάν δεν καθοριστεί τίποτα, τότε η λέξη-κλειδί ALL θεωρείται ως η προεπιλογή.
- {*| [έκφραση πεδίου [AS newName]} Πρέπει να καθοριστεί τουλάχιστον ένα μέρος. Το "*" επιλέγει όλα τα πεδία από το καθορισμένο όνομα πίνακα. Το fieldExpression εκτελεί υπολογισμούς στα καθορισμένα πεδία, όπως προσθήκη αριθμών ή ένωση δύο πεδίων συμβολοσειρών σε ένα.
- ΑΠΟ Το tableName είναι υποχρεωτικό και πρέπει να περιέχει τουλάχιστον έναν πίνακα. Πολλαπλοί πίνακες πρέπει να διαχωρίζονται με κόμματα ή να ενώνονται χρησιμοποιώντας τη λέξη-κλειδί JOIN.
- ΠΟΥ Η συνθήκη είναι προαιρετική. Καθορίζει κριτήρια στο σύνολο αποτελεσμάτων που επιστρέφεται από το ερώτημα.
- GROUP BY χρησιμοποιείται για τη συναρμολόγηση εγγραφών που έχουν τις ίδιες τιμές πεδίου.
- HAVING Η συνθήκη χρησιμοποιείται για τον καθορισμό κριτηρίων κατά την εργασία με τη λέξη-κλειδί GROUP BY.
- ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ χρησιμοποιείται για να καθορίσει τη σειρά ταξινόμησης του συνόλου αποτελεσμάτων.
*
Το σύμβολο του αστεριού επιλέγει όλες τις στήλες σε έναν πίνακα. Μια απλή εντολή SELECT μοιάζει με αυτήν που φαίνεται παρακάτω.
SELECT * FROM `members`;
Η παραπάνω πρόταση επιλέγει όλα τα πεδία από τον πίνακα μελών. Το ερωτηματικό είναι ένας τερματιστής πρότασης. Δεν είναι υποχρεωτικό, αλλά ο τερματισμός των προτάσεών σας με αυτόν τον τρόπο θεωρείται καλή πρακτική.
ΕΠΙΛΕΞΤΕ ΔΙΑΦΟΡΕΤΙΚΑ και ΟΡΙΟ σε MySQL
Δύο προαιρετικές λέξεις-κλειδιά στη σύνταξη αξίζουν μια πιο προσεκτική εξέταση, επειδή οι αρχάριοι τις συναντούν μόλις μεγαλώσει ένας πίνακας.
ΔΙΑΦΟΡΕΤΙΚΕΣ Η συνάρτηση DISTINCT αφαιρεί διπλότυπες γραμμές από το σύνολο αποτελεσμάτων. Ο πίνακας ταινιών αποθηκεύει αρκετές ταινίες που κυκλοφόρησαν το 2007, επομένως ένα απλό ερώτημα επαναλαμβάνεται για εκείνο το έτος. Η συνάρτηση DISTINCT επιστρέφει κάθε τιμή μία φορά.
SELECT DISTINCT `year_released` FROM `movies`;
LIMIT περιορίζει τον αριθμό των γραμμών που επιστρέφονται, γεγονός που προστατεύει τον πελάτη από ένα ερώτημα που διαφορετικά θα τραβούσε εκατομμύρια εγγραφές.
SELECT * FROM `movies` LIMIT 5;
| Λέξη-κλειδί | Τι κάνει | Πότε να το χρησιμοποιήσετε |
|---|---|---|
| ΟΛΑ (προεπιλογή) | Επιστρέφει κάθε αντίστοιχη γραμμή, συμπεριλαμβανομένων των διπλότυπων | Καταμέτρηση ή καταγραφή ακατέργαστων αρχείων |
| ΔΙΑΦΟΡΕΤΙΚΕΣ | Συμπτύσσει τις διπλότυπες γραμμές σε μία | Δημιουργία λίστας μοναδικών τιμών |
| LIMIT | Επιστρέφει μόνο τις πρώτες N γραμμές | Προεπισκόπηση δεδομένων ή αποτελεσμάτων σελιδοποίησης |
Με την τακτοποίηση της σύνταξης, η βάση δεδομένων-δειγμάτων δίνει ζωή σε αυτές τις ρήτρες.
Πρακτικά παραδείγματα δήλωσης SELECT
Κάντε κλικ για λήψη η βάση δεδομένων myflix που χρησιμοποιήθηκε για τα πρακτικά παραδείγματα.
Μπορείτε να μάθετε πώς να εισαγάγετε το αρχείο .sql σε MySQL Πάγκος εργασίας.
Τα παραδείγματα εκτελούνται στους δύο ακόλουθους πίνακες.
Πίνακας 1: μέλη τραπέζι
| αριθμός μέλους | πλήρη_ονόματα | των δύο φύλων | Ημερομηνια γεννησης | φυσική_ διεύθυνση | ταχυδρομική διεύθυνση | αριθμός επικοινωνίας | ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ |
|---|---|---|---|---|---|---|---|
| 1 | Τζάνετ Τζόουνς | Γυναίκα | 21-07-1980 | Οικόπεδο First Street No 4 | Ιδιωτική τσάντα | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Τζάνετ Σμιθ Τζόουνς | Γυναίκα | 23-06-1980 | Melrose 123 | Τιμή NULL | Τιμή NULL | jj@fstreet.com |
| 3 | Ρόμπερτ Φιλ | Άντρας | 12-07-1989 | 3η Οδός 34 | Τιμή NULL | 12345 | rm@tstreet.com |
| 4 | Γκλόρια Ουίλιαμς | Γυναίκα | 14-02-1984 | 2η οδός 23 | Τιμή NULL | Τιμή NULL | Τιμή NULL |
Πίνακας 2: κινηματογράφος τραπέζι
| movie_id | τίτλος | διευθυντής | έτος_κυκλοφόρησε | κατηγορία_αναγνωριστικό |
|---|---|---|---|---|
| 1 | Πειρατές της Καραϊβικής 4 | Ρομπ Μάρσαλ | 2011 | 1 |
| 2 | Ξεχνώντας τη Σάρα Μάρσαλ | Nicholas Stoller | 2008 | 2 |
| 3 | X Men | Τιμή NULL | 2008 | Τιμή NULL |
| 4 | Code Όνομα Μαύρο | Έντγκαρ Τζιμς | 2010 | Τιμή NULL |
| 5 | Μικρά κορίτσια του μπαμπά | Τιμή NULL | 2007 | 8 |
| 6 | Αγγελοι και ΔΑΙΜΟΝΕΣ | Τιμή NULL | 2007 | 6 |
| 7 | Ντα Βίντσι Code | Τιμή NULL | 2007 | 6 |
| 9 | Honey mooners | Τζον Σουλτς | 2005 | 8 |
| 16 | 67% Ένοχοι | Τιμή NULL | 2012 | Τιμή NULL |
Λήψη καταχώρισης μελών
Ας υποθέσουμε ότι θέλουμε μια λίστα με όλα τα εγγεγραμμένα μέλη της βιβλιοθήκης από τη βάση δεδομένων μας. Θα χρησιμοποιούσαμε το παρακάτω σενάριο για να το κάνουμε αυτό.
SELECT * FROM `members`;
Εκτέλεση του σεναρίου σε MySQL Το Workbench παράγει τα ακόλουθα αποτελέσματα.
| αριθμός μέλους | πλήρη_ονόματα | των δύο φύλων | Ημερομηνια γεννησης | φυσική_ διεύθυνση | ταχυδρομική διεύθυνση | αριθμός επικοινωνίας | ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ |
|---|---|---|---|---|---|---|---|
| 1 | Τζάνετ Τζόουνς | Γυναίκα | 21-07-1980 | Οικόπεδο First Street No 4 | Ιδιωτική τσάντα | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Τζάνετ Σμιθ Τζόουνς | Γυναίκα | 23-06-1980 | Melrose 123 | Τιμή NULL | Τιμή NULL | jj@fstreet.com |
| 3 | Ρόμπερτ Φιλ | Άντρας | 12-07-1989 | 3η Οδός 34 | Τιμή NULL | 12345 | rm@tstreet.com |
| 4 | Γκλόρια Ουίλιαμς | Γυναίκα | 14-02-1984 | 2η οδός 23 | Τιμή NULL | Τιμή NULL | Τιμή NULL |
Το ερώτημα επέστρεψε όλες τις γραμμές και τις στήλες από τον πίνακα μελών.
Επιλογή συγκεκριμένων στηλών
Ας υποθέσουμε ότι μας ενδιαφέρουν μόνο τα πεδία full_names (πλήρες_όνομα), gender (φύλο), physical_address (φυσική_διεύθυνση) και email. Το ακόλουθο σενάριο το επιτυγχάνει αυτό.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Εκτέλεση του σεναρίου σε MySQL Το Workbench παράγει τα ακόλουθα αποτελέσματα.
| πλήρη_ονόματα | των δύο φύλων | φυσική_διεύθυνση | ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ |
|---|---|---|---|
| Τζάνετ Τζόουνς | Γυναίκα | Οικόπεδο First Street No 4 | janetjones@yagoo.cm |
| Τζάνετ Σμιθ Τζόουνς | Γυναίκα | Melrose 123 | jj@fstreet.com |
| Ρόμπερτ Φιλ | Άντρας | 3η Οδός 34 | rm@tstreet.com |
| Γκλόρια Ουίλιαμς | Γυναίκα | 2η οδός 23 | Τιμή NULL |
Λήψη καταχώρισης ταινιών με εκφράσεις
Οι εκφράσεις μπορούν επίσης να χρησιμοποιηθούν σε εντολές SELECT. Ας υποθέσουμε ότι θέλουμε μια λίστα ταινιών με τον τίτλο και το όνομα του σκηνοθέτη σε ένα πεδίο, τον σκηνοθέτη σε παρενθέσεις, καθώς και το έτος κυκλοφορίας της ταινίας. Το ακόλουθο σενάριο το κάνει αυτό.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
ΕΔΩ
- Το Concat() MySQL Η συνάρτηση ενώνει τις τιμές των στηλών μεταξύ τους.
- Η γραμμή “Concat(`title`, ' (', `director`, ')')” λαμβάνει τον τίτλο, προσθέτει μια αρχική αγκύλη ακολουθούμενη από το όνομα του σκηνοθέτη και, στη συνέχεια, προσθέτει την αγκύλη κλεισίματος.
- Τα τμήματα των συμβολοσειρών διαχωρίζονται χρησιμοποιώντας κόμματα μέσα στη συνάρτηση Concat().
Εκτέλεση του σεναρίου σε MySQL Το Workbench παράγει το ακόλουθο σύνολο αποτελεσμάτων.
| Concat('τίτλος', ' (', 'σκηνοθέτης', ')') | έτος_κυκλοφόρησε |
|---|---|
| Pirates of the Caribean 4 (Ρομπ Μάρσαλ) | 2011 |
| Ξεχνώντας τη Σάρα Μάρσαλ (Νικόλας Στόλερ) | 2008 |
| Τιμή NULL | 2008 |
| Code Όνομα Black (Edgar Jimz) | 2010 |
| Τιμή NULL | 2007 |
| Τιμή NULL | 2007 |
| Τιμή NULL | 2007 |
| Honey mooners (Τζον Σουλτς) | 2005 |
| Τιμή NULL | 2012 |
Σημείωση: Η Concat() επιστρέφει NULL όταν οποιοδήποτε όρισμα είναι NULL, γι' αυτό και οι ταινίες χωρίς σκηνοθέτη εμφανίζουν NULL παραπάνω.
Ονόματα πεδίων με ψευδώνυμο
Το παραπάνω παράδειγμα επέστρεψε τον κώδικα συνένωσης ως όνομα πεδίου. Για να χρησιμοποιήσετε ένα πιο περιγραφικό όνομα πεδίου στο σύνολο αποτελεσμάτων, εφαρμόστε ένα ψευδώνυμο στήλης. Ακολουθεί η βασική σύνταξη.
SELECT `column_name|value|expression` [AS] `alias_name`;
ΕΔΩ
- "ΕΠΙΛΕΞΤΕ `όνομα_στήλης|τιμή|έκφραση`" είναι η κανονική εντολή SELECT, η οποία μπορεί να είναι ένα όνομα στήλης, μια τιμή ή μια παράσταση.
- "[ΟΠΩΣ ΚΑΙ]" είναι η προαιρετική λέξη-κλειδί πριν από το ψευδώνυμο.
- ""ψευδώνυμο" είναι το ψευδώνυμο που επιστρέφεται στο σύνολο αποτελεσμάτων ως όνομα πεδίου.
Το ίδιο ερώτημα με ένα πιο ουσιαστικό όνομα στήλης:
SELECT Concat(`title`, ' (', `director`, ')') AS `Concat`, `year_released` FROM `movies`;
Λαμβάνουμε το ακόλουθο αποτέλεσμα.
| Concat | έτος_κυκλοφόρησε |
|---|---|
| Pirates of the Caribean 4 (Ρομπ Μάρσαλ) | 2011 |
| Ξεχνώντας τη Σάρα Μάρσαλ (Νικόλας Στόλερ) | 2008 |
| Τιμή NULL | 2008 |
| Code Όνομα Black (Edgar Jimz) | 2010 |
| Τιμή NULL | 2007 |
| Τιμή NULL | 2007 |
| Τιμή NULL | 2007 |
| Honey mooners (Τζον Σουλτς) | 2005 |
| Τιμή NULL | 2012 |
Λήψη καταχώρισης μελών που εμφανίζει το έτος γέννησης
Ας υποθέσουμε ότι θέλουμε μια λίστα με όλα τα μέλη που να εμφανίζει τον αριθμό μέλους, τα πλήρη ονόματα και το έτος γέννησης. Μπορούμε να χρησιμοποιήσουμε τη συνάρτηση συμβολοσειράς LEFT για να εξηγήσουμεtract το έτος γέννησης από το πεδίο ημερομηνίας γέννησης.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
ΕΔΩ
- "LEFT('ημερομηνία_γέννησης',4)" ο ΑΡΙΣΤΕΡΑ συνάρτηση συμβολοσειράς δέχεται την ημερομηνία γέννησης ως παράμετρο και επιστρέφει μόνο 4 χαρακτήρες από τα αριστερά.
- "ΩΣ "έτος_γέννησης"" είναι το ψευδώνυμο στήλης επέστρεψε στα αποτελέσματά μας. Το Η λέξη-κλειδί AS είναι προαιρετική; μπορείτε να το παραλείψετε και το ερώτημα θα εξακολουθεί να λειτουργεί.
Εκτέλεση του ερωτήματος σε MySQL Το Workbench σε σχέση με το myflixdb μας δίνει τα αποτελέσματα που φαίνονται παρακάτω.
| αριθμός μέλους | πλήρη_ονόματα | έτος γέννησης |
|---|---|---|
| 1 | Τζάνετ Τζόουνς | 1980 |
| 2 | Τζάνετ Σμιθ Τζόουνς | 1980 |
| 3 | Ρόμπερτ Φιλ | 1989 |
| 4 | Γκλόρια Ουίλιαμς | 1984 |
Τα χειρόγραφα ερωτήματα είναι μόνο μία διαδρομή προς ένα σύνολο αποτελεσμάτων. Το Workbench μπορεί επίσης να δημιουργήσει την πρόταση για εσάς.
Χρήση SQL MySQL Πάγκος εργασίας
Τώρα πρόκειται να χρησιμοποιήσουμε MySQL Workbench για τη δημιουργία του σεναρίου που εμφανίζει όλα τα ονόματα πεδίων από τον πίνακα κατηγοριών μας.
1. Κάντε δεξί κλικ στον πίνακα Κατηγορίες. Κάντε κλικ στην επιλογή «Επιλογή γραμμών – Όριο 1000».
2. MySQL Το Workbench δημιουργεί αυτόματα ένα ερώτημα SQL και το επικολλά στον επεξεργαστή.
3. Τα αποτελέσματα των ερωτημάτων εμφανίζονται στο πλέγμα κάτω από τον επεξεργαστή.
Όπως φαίνεται στο στιγμιότυπο οθόνης, δεν γράψαμε εμείς οι ίδιοι την εντολή SELECT. MySQL Το Workbench το δημιούργησε για εμάς.
Γιατί να χρησιμοποιήσουμε την εντολή SELECT SQL όταν έχουμε MySQL Πάγκος εργασίας?
Ίσως αναρωτιέστε γιατί πρέπει να μάθετε την εντολή SQL SELECT όταν ένα εργαλείο όπως το MySQL Το Workbench επιστρέφει τα ίδια αποτελέσματα χωρίς να γνωρίζει τη γλώσσα SQL. Αυτή η συντόμευση είναι δυνατή, αλλά εκμάθηση της εντολής SELECT σου δίνει περισσότερα ευελιξία και έλεγχος πάνω από το δικό σας Δηλώσεις SQL SELECT.
MySQL Ο πάγκος εργασίας εμπίπτει στην κατηγορία «Ερώτηση με Παράδειγμα"(QBE) εργαλεία. Σκοπός του είναι η ταχύτερη δημιουργία δηλώσεων SQL και η αύξηση της παραγωγικότητας των χρηστών.
Η εκμάθηση της εντολής SQL SELECT σάς επιτρέπει να δημιουργείτε σύνθετα ερωτήματα που δεν μπορούν εύκολα να δημιουργηθούν από βοηθητικά προγράμματα Query by Example όπως το MySQL Πάγκος εργασίας.
Για να βελτιώσετε την παραγωγικότητα, μπορείτε δημιουργήστε τον κώδικα στο MySQL Πάγκος εργασίας, Τότε προσαρμόσετε αυτό να ανταποκρίνεται στις απαιτήσεις σαςΑυτό είναι δυνατό μόνο αφού κατανοήσετε πώς λειτουργούν οι εντολές SQL.



