MySQL ΕΠΙΛΟΓΗ Δήλωση με Παραδείγματα
Τι είναι το ερώτημα SELECT MySQL?
Το SELECT QUERY χρησιμοποιείται για την ανάκτηση των δεδομένων από το MySQL βάση δεδομένων. Οι βάσεις δεδομένων αποθηκεύουν δεδομένα για μελλοντική ανάκτηση. Ο σκοπός του MySQL Επιλογή είναι να επιστρέψετε από τους πίνακες της βάσης δεδομένων, μία ή περισσότερες σειρές που ταιριάζουν με ένα δεδομένο κριτήριο. Το ερώτημα επιλογής μπορεί να χρησιμοποιηθεί σε γλώσσα δέσμης ενεργειών όπως PHP, Ruby ή μπορείτε να το εκτελέσετε μέσω της γραμμής εντολών.
Σύνταξη δήλωσης SQL 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`;
Η παραπάνω δήλωση επιλέγει όλα τα πεδία από τον πίνακα μελών. Το ερωτηματικό είναι μια δήλωση τερματισμού. Δεν είναι υποχρεωτικό, αλλά θεωρείται καλή πρακτική να τελειώνετε τις δηλώσεις σας έτσι.
Πρακτικά παραδείγματα
Κάντε κλικ για λήψη το myflix DB που χρησιμοποιείται για πρακτικά παραδείγματα.
Μπορείτε να μάθετε να εισάγετε το αρχείο .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 | Κωδικό όνομα Μαύρο | Έντγκαρ Τζιμς | 2010 | Τιμή NULL |
5 | Μικρά κορίτσια του μπαμπά | Τιμή NULL | 2007 | 8 |
6 | Αγγελοι και ΔΑΙΜΟΝΕΣ | Τιμή NULL | 2007 | 6 |
7 | Κώδικας Davinci | Τιμή NULL | 2007 | 6 |
9 | Honey φεγγαράκια | Τζον Σουλτς | 2005 | 8 |
16 | 67% Ένοχοι | Τιμή NULL | 2012 | Τιμή NULL |
Λήψη καταχώρισης μελών
Ας υποθέσουμε ότι θέλουμε να λάβουμε μια λίστα με όλα τα εγγεγραμμένα μέλη της βιβλιοθήκης από τη βάση δεδομένων μας, θα χρησιμοποιούσαμε το σενάριο που φαίνεται παρακάτω για να το κάνουμε αυτό.
SELECT * FROM `members`;
Εκτέλεση του παραπάνω σεναρίου στο MySQL Ο πάγκος εργασίας παράγει τα ακόλουθα αποτελέσματα.
αριθμός μέλους | πλήρη_ονόματα | των δύο φύλων | Ημερομηνια γεννησης | φυσική_ διεύθυνση | ταχυδρομική διεύθυνση | αριθμός επικοινωνίας | ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ |
---|---|---|---|---|---|---|---|
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 Ο πάγκος εργασίας παράγει τα ακόλουθα αποτελέσματα.
πλήρη_ονόματα | των δύο φύλων | φυσική_διεύθυνση | ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ |
---|---|---|---|
Τζάνετ Τζόουνς | Γυναίκα | Οικόπεδο 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`;
ΕΔΩ
- The Concat () MySQL η συνάρτηση χρησιμοποιείται ενώστε τις τιμές των στηλών μαζί.
- Η γραμμή "Concat ('τίτλος', ' (', 'σκηνοθέτης', ')') παίρνει τον τίτλο, προσθέτει μια αρχική αγκύλη ακολουθούμενη από το όνομα του σκηνοθέτη και στη συνέχεια προσθέτει την αγκύλη κλεισίματος.
Τα τμήματα συμβολοσειράς διαχωρίζονται χρησιμοποιώντας κόμματα στη συνάρτηση Concat ().
Εκτέλεση του παραπάνω σεναρίου στο MySQL Ο πάγκος εργασίας παράγει το ακόλουθο σύνολο αποτελεσμάτων.
Concat('τίτλος', ' (', 'σκηνοθέτης', ')') | έτος_κυκλοφόρησε |
---|---|
Pirates of the Caribean 4 (Ρομπ Μάρσαλ) | 2011 |
Ξεχνώντας τη Σάρα Μάρσαλ (Νικόλας Στόλερ) | 2008 |
Τιμή NULL | 2008 |
Κωδικό όνομα Black (Edgar Jimz) | 2010 |
Τιμή NULL | 2007 |
Τιμή NULL | 2007 |
Τιμή NULL | 2007 |
Honey mooners (Τζον Σουλτς) | 2005 |
Τιμή NULL | 2012 |
Ψευδώνυμα ονόματα πεδίων
Το παραπάνω παράδειγμα επέστρεψε τον κωδικό Concatenation ως όνομα πεδίου για τα αποτελέσματά μας. Ας υποθέσουμε ότι θέλουμε να χρησιμοποιήσουμε ένα πιο περιγραφικό όνομα πεδίου στο σύνολο αποτελεσμάτων μας. Θα χρησιμοποιούσαμε το ψευδώνυμο της στήλης για να το πετύχουμε. Ακολουθεί η βασική σύνταξη για το ψευδώνυμο της στήλης
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 |
Κωδικό όνομα Black (Edgar Jimz) | 2010 |
Τιμή NULL | 2007 |
Τιμή NULL | 2007 |
Τιμή NULL | 2007 |
Honey mooners (Τζον Σουλτς) | 2005 |
Τιμή NULL | 2012 |
Λήψη λίστας μελών που δείχνει το έτος γέννησης
Ας υποθέσουμε ότι θέλουμε να λάβουμε μια λίστα με όλα τα μέλη που εμφανίζει τον αριθμό μέλους, τα πλήρη ονόματα και το έτος γέννησης, μπορούμε να χρησιμοποιήσουμε τη συνάρτηση ΑΡΙΣΤΕΡΑ συμβολοσειράς για να εξαγάγουμε το έτος γέννησης από το πεδίο ημερομηνίας γέννησης. Το σενάριο που φαίνεται παρακάτω μας βοηθά να το κάνουμε αυτό.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
ΕΔΩ
- "LEFT('ημερομηνία_γέννησης',4)" ο ΑΡΙΣΤΕΡΑ συνάρτηση συμβολοσειράς αποδέχεται την ημερομηνία γέννησης ως παράμετρο και επιστρέφει μόνο 4 χαρακτήρες από τα αριστερά.
- "ΩΣ "έτος_γέννησης"" είναι το ψευδώνυμο στήλης που θα επιστραφεί στα αποτελέσματά μας. Σημειώστε το Η λέξη-κλειδί AS είναι προαιρετική, μπορείτε να το αφήσετε εκτός και το ερώτημα θα εξακολουθεί να λειτουργεί.
Εκτέλεση του παραπάνω ερωτήματος στο MySQL Ο πάγκος εργασίας έναντι του myflixdb μας δίνει τα αποτελέσματα που φαίνονται παρακάτω.
αριθμός μέλους | πλήρη_ονόματα | έτος γέννησης |
---|---|---|
1 | Τζάνετ Τζόουνς | 1980 |
2 | Τζάνετ Σμιθ Τζόουνς | 1980 |
3 | Ρόμπερτ Φιλ | 1989 |
4 | Γκλόρια Ουίλιαμς | 1984 |
SQL με χρήση MySQL Πάγκος εργασίας
Τώρα πρόκειται να χρησιμοποιήσουμε MySQL πάγκος εργασίας για να δημιουργήσετε το σενάριο που θα εμφανίζει όλα τα ονόματα πεδίων από τον πίνακα κατηγοριών μας.
1. Κάντε δεξί κλικ στον πίνακα Κατηγορίες. Κάντε κλικ στο "Επιλογή σειρών - Όριο 1000"
2. MySQL Ο πάγκος εργασίας θα δημιουργήσει αυτόματα ένα ερώτημα SQL και θα επικολλήσει στο πρόγραμμα επεξεργασίας.
3. Θα εμφανιστούν τα αποτελέσματα του ερωτήματος
Παρατηρήστε ότι δεν γράψαμε μόνοι μας τη δήλωση SELECT. MySQL Ο πάγκος εργασίας το δημιούργησε για εμάς.
Γιατί να χρησιμοποιήσουμε την εντολή SELECT SQL όταν έχουμε MySQL Πάγκος εργασίας?
Τώρα, ίσως σκέφτεστε γιατί να μάθετε την εντολή SQL SELECT για να ρωτάτε δεδομένα από τη βάση δεδομένων, όταν μπορείτε απλά να χρησιμοποιήσετε ένα εργαλείο όπως π.χ. MySQL πάγκο εργασίας για να έχετε τα ίδια αποτελέσματα χωρίς γνώση της γλώσσας SQL. Φυσικά αυτό είναι δυνατό, αλλά μαθαίνοντας πώς να χρησιμοποιείτε την εντολή SELECT σου δίνει περισσότερα ευελιξία και έλεγχος πάνω από το δικό σας Δηλώσεις SQL SELECT.
MySQL ο πάγκος εργασίας εμπίπτει στην κατηγορία "Ερώτηση με ΠαράδειγμαΕργαλεία QBE. Σκοπός του είναι να βοηθήσει στη δημιουργία εντολών SQL γρηγορότερα για να αυξήσει την παραγωγικότητα του χρήστη.
Η εκμάθηση της εντολής SQL SELECT μπορεί να σας επιτρέψει να δημιουργήσετε σύνθετα ερωτήματα που δεν μπορούν να δημιουργηθούν εύκολα χρησιμοποιώντας βοηθητικά προγράμματα Query by Example όπως MySQL πάγκος εργασίας.
Για να βελτιώσετε την παραγωγικότητα μπορείτε δημιουργήστε τον κώδικα χρησιμοποιώντας MySQL πάγκος εργασίας τότε προσαρμόσετε αυτό να ανταποκρίνεται στις απαιτήσεις σας. Αυτό μπορεί να συμβεί μόνο εάν κατανοήσετε πώς λειτουργούν οι δηλώσεις SQL!
Σύνοψη
- Η λέξη-κλειδί SQL SELECT χρησιμοποιείται για την αναζήτηση δεδομένων από τη βάση δεδομένων και είναι η πιο συχνά χρησιμοποιούμενη εντολή.
- Η απλούστερη μορφή έχει τη σύνταξη "ΕΠΙΛΟΓΗ * ΑΠΟ Όνομα πίνακα;"
- Οι εκφράσεις μπορούν επίσης να χρησιμοποιηθούν στην πρόταση Select. Παράδειγμα "ΕΠΙΛΟΓΗ ποσότητας + τιμή ΑΠΟ ΠΩΛΗΣΕΙΣ"
- Η εντολή SQL SELECT μπορεί επίσης να έχει άλλες προαιρετικές παραμέτρους όπως WHERE, GROUP BY, HAVING, ORDER BY. Θα συζητηθούν αργότερα.
- MySQL Ο πάγκος εργασίας μπορεί να βοηθήσει στην ανάπτυξη εντολών SQL, στην εκτέλεσή τους και στην παραγωγή του αποτελέσματος εξόδου στο ίδιο παράθυρο.