Kas yra „SELECT“ užklausa „MySQL“?
SELECT QUERY naudojamas norint gauti duomenis iš „MySQL“ duomenų bazės. Duomenų bazėse saugomi duomenys vėliau. „MySQL Select“ tikslas yra grąžinti iš duomenų bazės lentelių vieną ar daugiau eilučių, atitinkančių nurodytus kriterijus. Pasirinkite užklausą galima naudoti scenarijų kalba, pvz., PHP, „Ruby“, arba galite ją atlikti naudodami komandų eilutę.
SQL SELECT sakinio sintaksė
Tai dažniausiai naudojama SQL komanda ir turi tokią bendrą sintaksę
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)ČIA
- SELECT yra SQL raktinis žodis, leidžiantis duomenų bazei žinoti, kad norite gauti duomenis.
- [NESKIRTI | VISI] yra neprivalomi raktiniai žodžiai, kuriais galima tikslinti rezultatus, gautus iš SQL SELECT sakinio. Jei nieko nenurodyta, laikoma, kad VISAS yra numatytasis.
- {* | [fieldExpression [AS newName]} turi būti nurodyta bent viena dalis, „*“ pasirinko visus laukus iš nurodyto lentelės pavadinimo, „FieldExpression“ atlieka tam tikrus nurodytų laukų skaičiavimus, pavyzdžiui, prideda skaičius arba sujungia du eilutės laukus į vieną.
- FROM tableName yra privalomas ir turi turėti bent vieną lentelę, kelias lenteles reikia atskirti kableliais arba sujungti naudojant JOIN raktinį žodį.
- WHERE sąlyga yra neprivaloma, ją galima naudoti nurodant kriterijus rezultatų rinkinyje, pateiktame iš užklausos.
- GROUP BY naudojamas sudėti įrašus, kurių laukų reikšmės yra vienodos.
- HAVING sąlyga naudojama norint nurodyti kriterijus dirbant naudojant raktinį žodį GROUP BY.
- ORDER BY naudojamas nurodyti rezultatų rinkinio rūšiavimo tvarką.
*
Žvaigždės simbolis naudojamas visiems lentelės stulpeliams pasirinkti. Paprasto SELECT sakinio pavyzdys atrodo taip, kaip parodyta žemiau.
SELECT * FROM `members`;
Pirmiau pateiktame sakinyje parenkami visi laukai iš narių lentelės. Kabliataškis yra pareiškimas nutraukti. Tai nėra privaloma, tačiau laikoma gera praktika, kad taip užbaigtumėte savo teiginius.
Praktiniai pavyzdžiai
Spustelėkite, jei norite atsisiųsti „myflix DB“, naudojamą praktiniams pavyzdžiams.
Galite išmokti importuoti .sql failą į „MySQL WorkBench“
Pavyzdžiai atliekami šiose dviejose lentelėse
1 lentelė: narių lentelė
narystės skaičius | pilni_vardai | Lytis | Gimimo data | fizinis adresas | pašto adresas | cont_ numeris | paštu |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Moteris | 1980-07-21 | Pirmosios gatvės sklypas Nr. 4 | Privatus krepšys | 0759 253 542 | Šis el. Pašto adresas yra apsaugotas nuo šiukšlų. Norėdami jį peržiūrėti, turite įgalinti „JavaScript“. |
2 | Janet Smith Jones | Moteris | 1980-06-23 | Melrose 123 | NULL | NULL | Šis el. Pašto adresas yra apsaugotas nuo šiukšlų. Norėdami jį peržiūrėti, turite įgalinti „JavaScript“. |
3 | Robertas Philas | Patinas | 1989-07-12 | 3-oji gatvė 34 | NULL | 12345 | Šis el. Pašto adresas yra apsaugotas nuo šiukšlų. Norėdami jį peržiūrėti, turite įgalinti „JavaScript“. |
4 | Gloria Williams | Moteris | 1984-02-14 | 2-oji gatvė 23 | NULL | NULL | NULL |
2 lentelė: filmų lentelė
filmo ID | pavadinimas | direktorius | metai_išleistas | category_id |
---|---|---|---|---|
1 | Karibų piratai 4 | Robas Maršalas | 2011 m | 1 |
2 | Pamiršęs Sarą maršalą | Nicholas Stolleris | 2008 m | 2 |
3 | Iksmenai | NULL | 2008 m | NULL |
4 | Kodo pavadinimas juodas | Edgaras Jimzas | 2010 m | NULL |
5 | Tėčio mažos mergaitės | NULL | 2007 m | 8 |
6 | Angelai ir demonai | NULL | 2007 m | 6 |
7 | Davinci kodas | NULL | 2007 m | 6 |
9 | Medaus mėnulininkai | Johnas Schultzas | 2005 m | 8 |
16 | 67% kaltas | NULL | 2012 m | NULL |
Gaunami narių sąrašai
Tarkime, kad iš savo duomenų bazės norime gauti visų registruotų bibliotekos narių sąrašą, tam naudosime žemiau pateiktą scenarijų.
SELECT * FROM `members`;
Minėto scenarijaus vykdymas MySQL darbastalyje duoda šiuos rezultatus.
narystės skaičius | pilni_vardai | Lytis | Gimimo data | fizinis adresas | pašto adresas | cont_ numeris | paštu |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Moteris | 1980-07-21 | Pirmosios gatvės sklypas Nr. 4 | Privatus krepšys | 0759 253 542 | Šis el. Pašto adresas yra apsaugotas nuo šiukšlų. Norėdami jį peržiūrėti, turite įgalinti „JavaScript“. |
2 | Janet Smith Jones | Moteris | 1980-06-23 | Melrose 123 | NULL | NULL | Šis el. Pašto adresas yra apsaugotas nuo šiukšlų. Norėdami jį peržiūrėti, turite įgalinti „JavaScript“. |
3 | Robertas Philas | Patinas | 1989-07-12 | 3-oji gatvė 34 | NULL | 12345 | Šis el. Pašto adresas yra apsaugotas nuo šiukšlų. Norėdami jį peržiūrėti, turite įgalinti „JavaScript“. |
4 | Gloria Williams | Moteris | 1984-02-14 | 2-oji gatvė 23 | NULL | NULL | NULL |
Aukščiau pateikta užklausa grąžino visas narių lentelės eilutes ir stulpelius.
Tarkime, kad mus domina tik laukai „visi_vardai“, „lytis“, „fizinis adresas“ ir el. Pašto adresai. Šis scenarijus padėtų mums tai pasiekti.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Minėto scenarijaus vykdymas MySQL darbastalyje duoda šiuos rezultatus.
pilni_vardai | Lytis | fizinis adresas | paštu |
---|---|---|---|
Janet Jones | Moteris | Pirmosios gatvės sklypas Nr. 4 | Šis el. Pašto adresas yra apsaugotas nuo šiukšlų. Norėdami jį peržiūrėti, turite įgalinti „JavaScript“. |
Janet Smith Jones | Moteris | Melrose 123 | Šis el. Pašto adresas yra apsaugotas nuo šiukšlų. Norėdami jį peržiūrėti, turite įgalinti „JavaScript“. |
Robertas Philas | Patinas | 3-oji gatvė 34 | Šis el. Pašto adresas yra apsaugotas nuo šiukšlų. Norėdami jį peržiūrėti, turite įgalinti „JavaScript“. |
Gloria Williams | Moteris | 2-oji gatvė 23 | NULL |
Gaunamas filmų sąrašas
Atminkite, kad aukščiau vykusioje diskusijoje paminėjome išraiškas, kurios buvo naudojamos SELECT teiginiuose. Tarkime, kad iš savo duomenų bazės norime gauti filmų sąrašą. Norime, kad filmo pavadinimas ir filmo režisieriaus vardas būtų vienoje srityje. Filmo režisieriaus vardas turėtų būti nurodytas skliausteliuose. Taip pat norime gauti filmo išleidimo metus. Šis scenarijus mums padeda tai padaryti.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
ČIA
- Concat () MySQL funkcija naudojama sujungti stulpelių reikšmes.
- Eilutė "Concat (" pavadinimas "," ("," režisierius ",") ") gauna pavadinimą, prideda pradinį skliaustą, po kurio rašo režisieriaus vardas, tada prideda uždarymą.
Styginių dalys yra atskirtos kableliais funkcijoje „Concat“ ().
Vykdant pirmiau pateiktą scenarijų „MySQL“ darbastalyje gaunamas toks rezultatų rinkinys.
Concat („pavadinimas“, „(“, „režisierius“, „)“) | metai_išleistas |
---|---|
Karibų piratai 4 (Robas Marshallas) | 2011 m |
Pamiršai Sarah Marshal (Nicholas Stoller) | 2008 m |
NULL | 2008 m |
Kodo pavadinimas juodas (Edgaras Jimzas) | 2010 m |
NULL | 2007 m |
NULL | 2007 m |
NULL | 2007 m |
Medaus mėnulininkai (John Schultz) | 2005 m |
NULL | 2012 m |
Pseudonimų laukų pavadinimai
Ankstesnis pavyzdys grąžino „Concatenation“ kodą kaip lauko rezultato pavadinimą. Tarkime, kad savo rezultatų rinkinyje norime naudoti labiau apibūdinantį lauko pavadinimą. Norėdami tai pasiekti, naudosime stulpelio pseudonimą. Toliau pateikiama pagrindinė stulpelio slapyvardžio sintaksė
SELECT `column_name|value|expression` [AS] `alias_name`;
ČIA
- "SELECT" column_name | value | expression " yra įprastas SELECT sakinys, kuris gali būti stulpelio pavadinimas, reikšmė ar išraiška.
- „[AS]“ yra pasirenkamas raktinis žodis, prieš pavadinimo vardas, nurodantis išraišką, reikšmę ar lauko pavadinimą, bus grąžintas kaip.
- „„ alias_name ““ yra slapyvardžio vardas, kurį norime grąžinti į savo rezultatų rinkinį kaip lauko pavadinimą.
Pirmiau pateikta užklausa su prasmingesniu stulpelio pavadinimu
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Gauname tokį rezultatą
Concat | metai_išleistas |
---|---|
Karibų piratai 4 (Robas Marshallas) | 2011 m |
Pamiršai Sarah Marshal (Nicholas Stoller) | 2008 m |
NULL | 2008 m |
Kodo pavadinimas juodas (Edgaras Jimzas) | 2010 m |
NULL | 2007 m |
NULL | 2007 m |
NULL | 2007 m |
Medaus mėnulininkai (John Schultz) | 2005 m |
NULL | 2012 m |
Gauti narius, nurodančius gimimo metus
Tarkime, kad norime gauti visų narių sąrašą, kuriame būtų nurodytas narystės numeris, vardai ir pavardės bei gimimo metai, galime naudoti eilutę LEFT, norėdami išskirti gimimo metus iš gimimo datos lauko. Tai padaryti mums padeda žemiau pateiktas scenarijus.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
ČIA
- "Left (" date_of_birth`, 4) " KAIRĖN eilutės funkcijos priima gimimo datą, kaip parametro ir tik grįžta 4 ženklus iš kairės.
- "AS" year_of_birth "" yra stulpelio pseudonimas, kuris bus pateiktas mūsų rezultatuose. Atkreipkite dėmesį, kad AS raktinis žodis yra neprivalomas , galite jo palikti, o užklausa vis tiek veiks.
Vykdydami pirmiau pateiktą užklausą „MySQL“ darbastalyje prieš „myflixdb“, gausime toliau nurodytus rezultatus.
narystės skaičius | pilni_vardai | Gimimo metai |
---|---|---|
1 | Janet Jones | 1980 m |
2 | Janet Smith Jones | 1980 m |
3 | Robertas Philas | 1989 metai |
4 | Gloria Williams | 1984 m |
SQL naudojant „MySQL Workbench“
Dabar mes ketiname naudoti „MySQL“ darbastalį, kad sugeneruotume scenarijų, kuriame bus rodomi visi laukų pavadinimai iš mūsų kategorijų lentelės.
1. Dešiniuoju pelės mygtuku spustelėkite Kategorijų lentelę. Spustelėkite „Pasirinkti eilutes - apriboti 1000“
2. „MySQL“ darbastalis automatiškai sukurs SQL užklausą ir įklijuos į redaktorių.
3. Užklausos rezultatai bus rodomi
Atkreipkite dėmesį, kad mes patys nerašėme SELECT sakinio. „MySQL“ darbastalis jį sukūrė mums.
Kodėl verta naudoti komandą SELECT SQL, kai turime „MySQL Workbench“?
Dabar jūs galvojate, kodėl išmokti komandą „SQL SELECT“ pateikti duomenis iš duomenų bazės, kai galite paprasčiausiai naudoti įrankį, pvz., „MySQL“ darbastalį, kad gautumėte tuos pačius rezultatus nežinodami SQL kalbos. Žinoma, kad galima, bet išmokti naudotis SELECT komanda suteikia jums daugiau lankstumo ir kontrolę per savo SQL SELECT .
„MySQL“ darbastalis priskiriamas QBE įrankių kategorijai „ Užklausa pagal pavyzdį “. Jis skirtas padėti greičiau generuoti SQL sakinius, kad padidėtų vartotojo produktyvumas.
Išmokę komandą „SQL SELECT“, galite sukurti sudėtingas užklausas , kurių negalima lengvai sugeneruoti naudojant „Query by Example“ įrankius, pvz., „MySQL“ darbastalį.
Norėdami pagerinti produktyvumą, galite sugeneruoti kodą naudodami „MySQL“ darbastalį, tada pritaikykite jį savo poreikiams . Tai gali atsitikti tik tada, jei suprantate, kaip veikia SQL sakiniai!
Santrauka
- SQL SELECT raktinis žodis naudojamas norint pateikti užklausą duomenims iš duomenų bazės ir tai dažniausiai naudojama komanda.
- Paprasčiausia forma turi sintaksę „SELECT * FROM tableName;“
- Išraiškos taip pat gali būti naudojamos pasirinktame sakinyje. Pavyzdys „PASIRINKITE kiekį ir kainą iš pardavimo“
- SQL SELECT komanda taip pat gali turėti kitus pasirenkamus parametrus, tokius kaip WHERE, GROUP BY, HAVING, ORDER BY. Jie bus aptariami vėliau.
- „MySQL“ darbastalis gali padėti sukurti SQL sakinius, juos vykdyti ir išvesties rezultatą sukurti tame pačiame lange.