Mis on SELECT-päring MySQL-is?
SELECT QUERY kasutatakse andmete hankimiseks MySQL-i andmebaasist. Andmebaasid salvestavad andmeid hilisemaks otsimiseks. MySQL Selecti eesmärk on tagastada andmebaasitabelitest üks või mitu antud kriteeriumile vastavat rida. Valitavat päringut saab kasutada skriptikeeles nagu PHP, Ruby, või saate selle käivitada käsuviiba kaudu.
SQL SELECT-lause süntaks
See on kõige sagedamini kasutatav SQL-käsk ja sellel on järgmine üldine süntaks
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)SIIN
- SELECT on SQL-i märksõna, mis annab andmebaasile teada, et soovite andmeid hankida.
- [ERISTADA | KÕIK] on valikulised märksõnad, mida saab kasutada SQL SELECT-i lausest tagastatud tulemuste täpsemaks häälestamiseks. Kui midagi pole täpsustatud, eeldatakse, et vaikimisi on KÕIK.
- {* | [fieldExpression [AS newName]} peab olema määratud vähemalt üks osa, "*" valis kõik väljad määratud tabeli nimest, fieldExpression teostab määratud väljadel mõned arvutused, näiteks lisab numbreid või paneb kaks stringivälja ühte.
- FROM tableName on kohustuslik ja peab sisaldama vähemalt ühte tabelit, mitu tabelit tuleb eraldada komadega või ühendada märksõna JOIN abil.
- Kus tingimus on valikuline, saab seda kasutada päringu tagastatud tulemuste komplektis kriteeriumide määramiseks.
- GROUP BY kasutatakse samade väljaväärtustega kirjete kokku panemiseks.
- Tingimust HAVING kasutatakse kriteeriumide täpsustamiseks märksõna GROUP BY kasutamisel.
- ORDER BY kasutatakse tulemuste komplekti sortimisjärjestuse määramiseks.
*
Tärni tähte kasutatakse kõigi tabeli veergude valimiseks. Lihtsa SELECT-lause näide näeb välja selline, nagu allpool näidatud.
SELECT * FROM `members`;
Ülaltoodud lause valib liikmete tabelist kõik väljad. Semikoolon on avaldus lõpetada. See ei ole kohustuslik, kuid seda peetakse heaks tavaks oma avalduste selliseks lõpetamiseks.
Praktilised näited
Klõpsake praktiliste näidete jaoks kasutatud myflix DB allalaadimiseks .
Võite õppida .sql-faili importima MySQL WorkBenchi
Näited esitatakse kahel järgmisel tabelil
Tabel 1: liikmete tabel
liikmenumber | täisnimed | sugu | sünnikuupäev | füüsiline_aadress | postiaadress | cont_ number | e-post |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Naine | 21-07-1980 | Esimese tänava krunt nr 4 | Privaatne kott | 0759 253 542 | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
2 | Janet Smith Jones | Naine | 23.06.1980 | Melrose 123 | NULL | NULL | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
3 | Robert Phil | Mees | 12-07-1989 | 3. tänav 34 | NULL | 12345 | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
4 | Gloria Williams | Naine | 14-02-1984 | 2. tänav 23 | NULL | NULL | NULL |
Tabel 2: filmide tabel
movie_id | pealkiri | direktor | aasta_vabastatud | category_id |
---|---|---|---|---|
1 | Kariibi mere piraadid 4 | Rob Marshall | 2011 | 1 |
2 | Sarah marssali unustamine | Nicholas Stoller | 2008 | 2 |
3 | X mehed | NULL | 2008 | NULL |
4 | Koodinimi Must | Edgar Jimz | 2010 | NULL |
5 | Isa väikesed tüdrukud | NULL | 2007 | 8 |
6 | Inglid ja deemonid | NULL | 2007 | 6 |
7 | Davinci kood | NULL | 2007 | 6 |
9 | Kallis mooners | John Schultz | 2005 | 8 |
16 | 67% süüdi | NULL | 2012 | NULL |
Liikmete nimekirja saamine
Oletame, et tahame oma andmebaasist saada nimekirja kõigist registreeritud raamatukogu liikmetest, kasutaksime selleks allpool näidatud skripti.
SELECT * FROM `members`;
Ülaltoodud skripti käivitamine MySQL-i töölauas annab järgmised tulemused.
liikmenumber | täisnimed | sugu | sünnikuupäev | füüsiline_aadress | postiaadress | cont_ number | e-post |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Naine | 21-07-1980 | Esimese tänava krunt nr 4 | Privaatne kott | 0759 253 542 | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
2 | Janet Smith Jones | Naine | 23.06.1980 | Melrose 123 | NULL | NULL | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
3 | Robert Phil | Mees | 12-07-1989 | 3. tänav 34 | NULL | 12345 | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
4 | Gloria Williams | Naine | 14-02-1984 | 2. tänav 23 | NULL | NULL | NULL |
Meie ülaltoodud päring on tagastanud liikmete tabeli kõik read ja veerud.
Oletame, et meid huvitab ainult väljade täisnimed, sugu, füüsiline aadress ja e-posti aadress. Järgmine skript aitaks meil seda saavutada.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Ülaltoodud skripti käivitamine MySQL-i töölauas annab järgmised tulemused.
täisnimed | sugu | füüsiline_aadress | e-post |
---|---|---|---|
Janet Jones | Naine | Esimese tänava krunt nr 4 | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
Janet Smith Jones | Naine | Melrose 123 | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
Robert Phil | Mees | 3. tänav 34 | See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti. |
Gloria Williams | Naine | 2. tänav 23 | NULL |
Filmide nimekirja saamine
Pidage oma ülalolevas arutelus meeles, et mainime SELECT-lausetes kasutatud väljendeid. Oletame, et tahame oma andmebaasist saada nimekirja filmidest. Tahame, et filmi pealkiri ja režissööri nimi oleksid ühes valdkonnas. Filmi režissööri nimi peaks olema sulgudes. Samuti tahame saada filmi väljaandmise aasta. Järgmine skript aitab meil seda teha.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
SIIN
- Funktsiooni Concat () MySQL kasutatakse veergude väärtuste ühendamiseks.
- Rida "Concat (" pealkiri "," ("," režissöör ",") ") saab pealkirja, lisab avasulg, millele järgneb režissööri nimi ja seejärel sulg.
Stringi osad eraldatakse funktsioonis Concat () komadega.
Ülaltoodud skripti käivitamine MySQL-i töölauas annab järgmise tulemuste komplekti.
Concat ("pealkiri", "(", "lavastaja", ")") | aasta_vabastatud |
---|---|
Kariibi mere piraadid 4 (Rob Marshall) | 2011 |
Sarah marssali (Nicholas Stoller) unustamine | 2008 |
NULL | 2008 |
Koodnimi must (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey mooners (John Schultz) | 2005 |
NULL | 2012 |
Alias väljade nimed
Ülaltoodud näide tagastas liitmise koodi meie tulemuste välja nimeks. Oletame, et tahame oma tulemuste komplektis kasutada kirjeldavamat välja nime. Selle saavutamiseks kasutaksime veeru pseudonime. Järgmine on veeru pseudonüümi põhisüntaks
SELECT `column_name|value|expression` [AS] `alias_name`;
SIIN
- "SELECT" veeru_nimi | väärtus | avaldis " on tavaline SELECT-lause, mis võib olla veeru nimi, väärtus või avaldis.
- "[AS]" on valikuline märksõna, enne kui avaldise, väärtuse või välja nime tähistava varjunime nimi tagastatakse.
- "" alias_nimi " on varjunime nimi, mille tahame oma tulemikomplektis välja nimena tagastada.
Ülaltoodud päring sisukama veeru nimega
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Saame järgmise tulemuse
Concat | aasta_vabastatud |
---|---|
Kariibi mere piraadid 4 (Rob Marshall) | 2011 |
Sarah marssali (Nicholas Stoller) unustamine | 2008 |
NULL | 2008 |
Koodnimi must (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey mooners (John Schultz) | 2005 |
NULL | 2012 |
Liikmete hankimine nimekirja, kus on näidatud sünniaasta
Oletame, et tahame saada nimekirja kõigist liikmetest, kus on kirjas liikmenumber, täisnimed ja sünniaasta, saame vasaku stringifunktsiooni abil välja võtta sünniaasta väljast. Allpool toodud skript aitab meil seda teha.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
SIIN
- "LEFT (` date_of_birth`, 4) " LEFT string funktsioon aktsepteerib sünniaeg kui parameeter ja näitab ainult 4 tähemärki vasakult.
- "AS" year_of_birth "" on veeru varjunimi , mis tagastatakse meie tulemustes. Pange tähele, et AS-i märksõna on valikuline , võite selle välja jätta ja päring töötab endiselt.
Ülaltoodud päringu täitmine MySQL-i töölaual myflixdb-ga annab meile allpool näidatud tulemused.
liikmenumber | täisnimed | sünniaasta |
---|---|---|
1 | Janet Jones | 1980 |
2 | Janet Smith Jones | 1980 |
3 | Robert Phil | 1989 |
4 | Gloria Williams | 1984 |
SQL MySQL Workbenchi abil
Kasutame nüüd MySQL-i tööpinki skripti loomiseks, mis kuvab kõik kategooriate tabeli väljade nimed.
1. Paremklõpsake tabelil Kategooriad. Klõpsake nuppu "Vali read - piira 1000"
2. MySQL töölaud loob automaatselt SQL-päringu ja kleebib redaktorisse.
3. Päringu tulemused kuvatakse
Pange tähele, et me ei kirjutanud ise SELECT-lauset. MySQLi tööpink lõi selle meie jaoks.
Miks kasutada käsku SELECT SQL, kui meil on MySQL Workbench?
Nüüd võite mõelda, miks õppida SQL SELECTi käsku andmebaasist andmete pärimiseks, kui saate lihtsalt kasutada tööriista nagu MySQL töölaud, et saada samu tulemusi ilma SQL-keelt tundmata. Muidugi on see võimalik, kuid käsu SELECT õppimine annab teile suurema paindlikkuse ja kontrolli oma SQL SELECT-lausete üle .
MySQL-i tööpink kuulub QBE-tööriistade kategooriasse " Päring näite järgi ". See on mõeldud kasutaja tootlikkuse suurendamiseks kiiremini SQL-i lausete loomiseks.
SQL SELECT-käsu õppimine võimaldab teil luua keerukaid päringuid , mida ei saa hõlpsasti Query by Example utiliitide abil luua, näiteks MySQL-i töölaud.
Tootlikkuse parandamiseks saate koodi genereerida MySQL-i tööpingi abil, seejärel kohandage see oma vajadustele vastavaks . See võib juhtuda ainult siis, kui saate aru, kuidas SQL-i laused töötavad!
Kokkuvõte
- SQL SELECTi märksõna kasutatakse andmebaasist andmete pärimiseks ja see on kõige sagedamini kasutatav käsk.
- Kõige lihtsamal vormil on süntaks "SELECT * FROM tableName;"
- Avaldisi saab kasutada ka valitud lauses. Näide "VALI kogus + hind müügist"
- SQL SELECT-käsul võivad olla ka muud valikulised parameetrid, näiteks WHERE, GROUP BY, HAVING, ORDER BY. Neid arutatakse hiljem.
- MySQL-i tööpink võib aidata SQL-i lauseid arendada, neid käivitada ja väljunditulemuse luua samas aknas.