Ce este interogarea SELECT în MySQL?
SELECT QUERY este utilizat pentru preluarea datelor din baza de date MySQL. Bazele de date stochează date pentru regăsirea ulterioară. Scopul MySQL Select este de a returna din tabelele bazei de date, unul sau mai multe rânduri care corespund unui anumit criteriu. Interogarea selectată poate fi utilizată în limbajul de scriptare, cum ar fi PHP, Ruby, sau o puteți executa prin promptul de comandă.
Sintaxa instrucțiunii SQL SELECT
Este cea mai frecvent utilizată comandă SQL și are următoarea sintaxă generală
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)AICI
- SELECT este cuvântul cheie SQL care permite bazei de date să știe că doriți să preluați date.
- [DISTINCT | ALL] sunt cuvinte cheie opționale care pot fi utilizate pentru a regla fin rezultatele returnate din instrucțiunea SQL SELECT. Dacă nu este specificat nimic, atunci ALL este considerat implicit.
- {* | [fieldExpression [AS newName]} trebuie specificată cel puțin o parte, "*" a selectat toate câmpurile din numele tabelului specificat, fieldExpression efectuează unele calcule pe câmpurile specificate, cum ar fi adăugarea de numere sau asamblarea a două câmpuri de șiruri într-unul singur.
- FROM tableName este obligatoriu și trebuie să conțină cel puțin un tabel, mai multe tabele trebuie separate prin virgule sau unite folosind cuvântul cheie JOIN.
- WHERE condiția este opțională, poate fi utilizată pentru a specifica criteriile din setul de rezultate returnate din interogare.
- GROUP BY este folosit pentru a pune împreună înregistrări care au aceleași valori de câmp.
- Condiția HAVING este utilizată pentru a specifica criteriile atunci când lucrați folosind cuvântul cheie GROUP BY.
- ORDER BY este utilizat pentru a specifica ordinea de sortare a setului de rezultate.
*
Simbolul Stea este utilizat pentru a selecta toate coloanele din tabel. Un exemplu de instrucțiune SELECT simplă arată ca cel prezentat mai jos.
SELECT * FROM `members`;
Declarația de mai sus selectează toate câmpurile din tabelul membrilor. Punctul și virgula este o declarație de terminare. Nu este obligatoriu, dar este considerat o bună practică pentru a încheia astfel de declarații.
Exemple practice
Faceți clic pentru a descărca baza de date myflix utilizată pentru exemple practice.
Puteți învăța să importați fișierul .sql în MySQL WorkBench
Exemplele sunt efectuate pe următoarele două tabele
Tabelul 1: tabelul membrilor
numar de membru | nume complete | gen | Data de nastere | adresă fizică | adresa postala | număr contct_ | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Femeie | 21-07-1980 | Primul teren, strada nr. 4 | Geantă privată | 0759 253 542 | Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. |
2 | Janet Smith Jones | Femeie | 23-06-1980 | 123 | NUL | NUL | Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. |
3 | Robert Phil | Masculin | 07-07-1989 | Strada 3 34 | NUL | 12345 | Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. |
4 | Gloria Williams | Femeie | 14-02-1984 | Strada 2 23 | NUL | NUL | NUL |
Tabelul 2: tabelul filmelor
film_id | titlu | director | anul_eliberat | categorie_id |
---|---|---|---|---|
1 | Pirații din Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Uitând-o pe Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NUL | 2008 | NUL |
4 | Nume cod negru | Edgar Jimz | 2010 | NUL |
5 | Fetițele tăticului | NUL | 2007 | 8 |
6 | ingeri si Demoni | NUL | 2007 | 6 |
7 | Codul Davinci | NUL | 2007 | 6 |
9 | Iubitori de dragoste | John Schultz | 2005 | 8 |
16 | 67% vinovat | NUL | 2012 | NUL |
Obținerea listării membrilor
Să presupunem că dorim să obținem o listă cu toți membrii bibliotecii înregistrați din baza noastră de date, am folosi scriptul prezentat mai jos pentru a face acest lucru.
SELECT * FROM `members`;
Executarea scriptului de mai sus în MySQL workbench produce următoarele rezultate.
numar de membru | nume complete | gen | Data de nastere | adresă fizică | adresa postala | număr contct_ | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Femeie | 21-07-1980 | Primul teren, strada nr. 4 | Geantă privată | 0759 253 542 | Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. |
2 | Janet Smith Jones | Femeie | 23-06-1980 | 123 | NUL | NUL | Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. |
3 | Robert Phil | Masculin | 07-07-1989 | Strada 3 34 | NUL | 12345 | Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. |
4 | Gloria Williams | Femeie | 14-02-1984 | Strada 2 23 | NUL | NUL | NUL |
Interogarea noastră de mai sus a returnat toate rândurile și coloanele din tabelul membrilor.
Să presupunem că suntem interesați să obținem numai câmpurile full_names, gender, adresa fizică și e-mail. Următorul script ne-ar ajuta să realizăm acest lucru.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Executarea scriptului de mai sus în MySQL workbench produce următoarele rezultate.
nume complete | gen | adresă fizică | |
---|---|---|---|
Janet Jones | Femeie | Primul teren, strada nr. 4 | Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. |
Janet Smith Jones | Femeie | 123 | Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. |
Robert Phil | Masculin | Strada 3 34 | Această adresă de e-mail este protejată de spamboți. Aveți nevoie de JavaScript activat pentru ao vizualiza. |
Gloria Williams | Femeie | Strada 2 23 | NUL |
Obținerea listării filmelor
Amintiți-vă în discuția noastră de mai sus că menționăm expresii utilizate în declarațiile SELECT. Să presupunem că vrem să obținem o listă de filme din baza noastră de date. Vrem să avem titlul filmului și numele regizorului de film într-un singur domeniu. Numele regizorului de film ar trebui să fie între paranteze. De asemenea, vrem să obținem anul în care a fost lansat filmul. Următorul script ne ajută să facem acest lucru.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
AICI
- Funcția Concat () MySQL este utilizată pentru a uni valorile coloanelor.
- Rândul „Concat („ title`, '(', „director`, ')') primește titlul, adaugă o paranteză de deschidere urmată de numele regizorului, apoi adaugă paranteză de închidere.
Porțiunile de șir sunt separate folosind virgule în funcția Concat ().
Executarea scriptului de mai sus în MySQL workbench produce următorul set de rezultate.
Concat („title`, '(',„ director`, ')') | anul_eliberat |
---|---|
Pirații din Caribean 4 (Rob Marshall) | 2011 |
Uitând-o pe Sarah Marshal (Nicholas Stoller) | 2008 |
NUL | 2008 |
Nume cod negru (Edgar Jimz) | 2010 |
NUL | 2007 |
NUL | 2007 |
NUL | 2007 |
Honey Mooners (John Schultz) | 2005 |
NUL | 2012 |
Nume de câmp alias
Exemplul de mai sus a returnat codul de concatenare ca nume de câmp pentru rezultatele noastre. Să presupunem că vrem să folosim un nume de câmp mai descriptiv în setul nostru de rezultate. Pentru a realiza acest lucru, am folosi numele aliasului coloanei. Următoarea este sintaxa de bază pentru numele aliasului coloanei
SELECT `column_name|value|expression` [AS] `alias_name`;
AICI
- "SELECT` nume_coloană | valoare | expresie `" este declarația regulată SELECT care poate fi un nume de coloană, o valoare sau o expresie.
- „[AS]” este cuvântul cheie opțional înainte ca numele aliasului care denotă expresia, valoarea sau numele câmpului să fie returnat ca.
- „` alias_name` ” este numele de alias pe care dorim să îl returnăm în setul nostru de rezultate ca nume de câmp.
Interogarea de mai sus cu un nume de coloană mai semnificativ
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Obținem următorul rezultat
Concat | anul_eliberat |
---|---|
Pirații din Caribean 4 (Rob Marshall) | 2011 |
Uitând-o pe Sarah Marshal (Nicholas Stoller) | 2008 |
NUL | 2008 |
Nume cod negru (Edgar Jimz) | 2010 |
NUL | 2007 |
NUL | 2007 |
NUL | 2007 |
Honey Mooners (John Schultz) | 2005 |
NUL | 2012 |
Se afișează lista membrilor care arată anul nașterii
Să presupunem că dorim să obținem o listă cu toți membrii care să arate numărul de membru, numele complet și anul nașterii, putem folosi funcția șir STÂNGA pentru a extrage anul nașterii din câmpul data nașterii. Scriptul prezentat mai jos ne ajută să facem acest lucru.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
AICI
- „STÂNGA (` date_of_birth`, 4)“ funcția șir STANGA acceptă data nașterii ca parametru și returnează numai 4 caractere din stânga.
- „AS` year_of_birth` ” este numele aliasului coloanei care va fi returnat în rezultatele noastre. Rețineți că cuvântul cheie AS este opțional , îl puteți lăsa și interogarea va funcționa în continuare.
Executarea interogării de mai sus în MySQL workbench împotriva myflixdb ne oferă rezultatele prezentate mai jos.
numar de membru | nume complete | anul nașterii |
---|---|---|
1 | Janet Jones | 1980 |
2 | Janet Smith Jones | 1980 |
3 | Robert Phil | 1989 |
4 | Gloria Williams | 1984 |
SQL folosind MySQL Workbench
Acum vom folosi bancul de lucru MySQL pentru a genera scriptul care va afișa toate numele câmpurilor din tabelul nostru de categorii.
1. Faceți clic dreapta pe tabelul Categorii. Faceți clic pe „Selectare rânduri - Limită 1000”
2. MySQL workbench va crea automat o interogare SQL și o va lipi în editor.
3. Rezultatele interogării vor fi afișate
Observați că noi nu am scris declarația SELECT. Bancul de lucru MySQL l-a generat pentru noi.
De ce să folosim comanda SELECT SQL când avem MySQL Workbench?
Acum, s-ar putea să vă gândiți de ce să învățați comanda SQL SELECT pentru a interoga date din baza de date, atunci când puteți utiliza pur și simplu un instrument, cum ar fi MySQL workbench's, pentru a obține aceleași rezultate fără a cunoaște limbajul SQL. Desigur, este posibil, dar învățarea modului de utilizare a comenzii SELECT vă oferă mai multă flexibilitate și control asupra instrucțiunilor SQL SELECT .
MySQL workbench se încadrează în categoria instrumentelor QBE „ Interogare prin exemplu ”. Este destinat să ajute la generarea de instrucțiuni SQL mai repede pentru a crește productivitatea utilizatorului.
Învățarea comenzii SQL SELECT vă poate permite să creați interogări complexe care nu pot fi generate cu ușurință folosind utilitare Query by Example, cum ar fi MySQL workbench.
Pentru a îmbunătăți productivitatea, puteți genera codul folosind bancul de lucru MySQL, apoi îl puteți personaliza pentru a vă satisface cerințele . Acest lucru se poate întâmpla numai dacă înțelegeți cum funcționează instrucțiunile SQL!
rezumat
- Cuvântul cheie SQL SELECT este utilizat pentru interogarea datelor din baza de date și este cea mai frecvent utilizată comandă.
- Cea mai simplă formă are sintaxa "SELECT * FROM tableName;"
- Expresiile pot fi folosite și în declarația select. Exemplu „SELECTAȚI cantitatea + prețul DE LA Vânzări”
- Comanda SQL SELECT poate avea și alți parametri opționali precum WHERE, GROUP BY, HAVING, ORDER BY. Vor fi discutate mai târziu.
- MySQL workbench vă poate ajuta să dezvoltați instrucțiuni SQL, să le executați și să producă rezultatul de ieșire în aceeași fereastră.