MySQL SELECT avaldus koos näidetega
⚡ Nutikas kokkuvõte
. MySQL SELECT-lause otsib ridu ühest või mitmest tabelist ja iga allolev näide töötab myflixi näidisandmebaasis, liikudes tavalisest tähepäringust avaldiste, veerualiaste ja stringfunktsioonide juurde.

Mis on SELECT-päring? MySQL?
SELECT-päring kasutatakse andmete toomiseks MySQL andmebaasi. Andmebaasid salvestavad andmeid hilisemaks väljavõtmiseks. Eesmärk MySQL SELECT on mõeldud andmebaasi tabelitest ühe või mitme rea tagastamiseks, mis vastavad antud kriteeriumidele. SELECT-päringut saab kasutada skriptimiskeeles nagu PHP või Ruby või käivitada käsurealt.
Kuna SELECT on käsk, mida sa kõige sagedamini käivitad, tasub enne näidisandmetega tegelemist selle süntaksi selgeks õppida.
SQL SELECT-lause süntaks
SELECT 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.
- [ERINEV | KÕIK] on valikulised märksõnad, mis täpsustavad SQL SELECT-lause tagastatud tulemusi. Kui midagi pole määratud, eeldatakse, et vaikimisi on valitud ALL.
- {*| [fieldExpression [AS newName]} Vähemalt üks osa peab olema määratud. „*” valib kõik määratud tabeli nimest väljad; väljaavaldis teeb arvutusi määratud väljadel, näiteks liitb numbreid või ühendab kaks stringivälja üheks.
- ALATES „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. See määrab päringu tagastatud tulemuste komplektis kriteeriumid.
- GROUP BY kasutatakse samade väljaväärtustega kirjete kokkupanekuks.
- VÕIMALIK Tingimust kasutatakse kriteeriumide määramiseks märksõnaga GROUP BY töötamisel.
- TELLI kasutatakse tulemuste komplekti sortimise järjekorra määramiseks.
*
Tärni sümbol valib kõik tabeli veerud. Lihtne SELECT-lause näeb välja selline, nagu allpool näidatud.
SELECT * FROM `members`;
Ülaltoodud lause valib kõik liikmete tabeli väljad. Semikoolon on lause lõpetaja. See pole kohustuslik, kuid lausete selline lõpetamine on hea tava.
VALI DISTINCT ja LIMIT sees MySQL
Kaks valikulist märksõna süntaksis väärivad lähemalt uurimist, sest algajad puutuvad nendega kokku kohe, kui tabel kasvab.
DISTINCT eemaldab tulemuste hulgast duplikaatread. Filmide tabel sisaldab mitut 2007. aastal ilmunud filmi, seega kordub tavaline päring sellel aastal. DISTINCT tagastab iga väärtuse üks kord.
SELECT DISTINCT `year_released` FROM `movies`;
LIMIT piirab tagastatavate ridade arvu, mis kaitseb klienti päringu eest, mis muidu tõmbaks välja miljoneid kirjeid.
SELECT * FROM `movies` LIMIT 5;
| Võtmesõna | Mida see teeb | Millal seda kasutada |
|---|---|---|
| KÕIK (vaikimisi) | Tagastab kõik sobivad read, kaasa arvatud duplikaadid | Toores kirjete loendamine või loetlemine |
| DISTINCT | Ahendab duplikaatread üheks | Unikaalsete väärtuste loendi koostamine |
| LIMIT | Tagastab ainult esimesed N rida | Andmete või lehekülgede tulemuste eelvaade |
Kui süntaks on paigas, äratab näidisandmebaas need klauslid ellu.
SELECT-lause praktilised näited
Klõpsake allalaadimiseks Praktiliste näidete jaoks kasutatud myflixi andmebaas.
Saate teada, kuidas .sql-faili importida MySQL Workbench.
Näited on esitatud kahel järgmisel tabelil.
Tabel 1: liikmetele tabel
| liikme_number | täis_nimed | sugu | sünnikuupäev | füüsiline_ aadress | postiaadress | kontakt_number | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Naine | 21-07-1980 | Esimese tänava krunt nr 4 | Privaatne kott | +0759 253 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Naine | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Mees | 12-07-1989 | 3. tänav 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | Naine | 14-02-1984 | 2. tänav 23 | NULL | NULL | NULL |
Tabel 2: Filmid tabel
| filmi_id | pealkiri | juhataja | aasta_välja antud | kategooria_id |
|---|---|---|---|---|
| 1 | Kariibi mere piraadid 4 | Rob Marshall | 2011 | 1 |
| 2 | Unustades Sarah Marshali | Nicholas stoller | 2008 | 2 |
| 3 | X-Men | NULL | 2008 | NULL |
| 4 | Code Nimi Must | Edgar Jimz | 2010 | NULL |
| 5 | Isa väikesed tüdrukud | NULL | 2007 | 8 |
| 6 | Inglid ja deemonid | NULL | 2007 | 6 |
| 7 | davinci Code | NULL | 2007 | 6 |
| 9 | Honey moontv | John Schultz | 2005 | 8 |
| 16 | 67% süüdi | NULL | 2012 | NULL |
Liikmete nimekirja saamine
Oletame, et tahame saada nimekirja kõigist meie andmebaasis registreeritud raamatukogu liikmetest. Selleks kasutaksime allolevat skripti.
SELECT * FROM `members`;
Skripti käivitamine MySQL Töölaud annab järgmised tulemused.
| liikme_number | täis_nimed | sugu | sünnikuupäev | füüsiline_ aadress | postiaadress | kontakt_number | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Naine | 21-07-1980 | Esimese tänava krunt nr 4 | Privaatne kott | +0759 253 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Naine | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Mees | 12-07-1989 | 3. tänav 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | Naine | 14-02-1984 | 2. tänav 23 | NULL | NULL | NULL |
Päring tagastas kõik liikmete tabeli read ja veerud.
Konkreetsete veergude valimine
Oletame, et meid huvitavad ainult täisnimed, sugu, füüsiline aadress ja e-posti aadress. Järgmine skript saavutab selle.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Skripti käivitamine MySQL Töölaud annab järgmised tulemused.
| täis_nimed | sugu | füüsiline_aadress | |
|---|---|---|---|
| Janet Jones | Naine | Esimese tänava krunt nr 4 | janetjones@yagoo.cm |
| Janet Smith Jones | Naine | Melrose 123 | jj@fstreet.com |
| Robert Phil | Mees | 3. tänav 34 | rm@tstreet.com |
| Gloria Williams | Naine | 2. tänav 23 | NULL |
Filmide loendi hankimine väljenditega
Avaldisi saab kasutada ka SELECT-lausetes. Oletame, et tahame filmide loendit, kus ühel väljal on pealkiri ja režissööri nimi, sulgudes režissöör ja filmi ilmumisaasta. Järgmine skript teeb seda.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
SIIN
- Kontsert() MySQL Funktsioon ühendab veeruväärtused omavahel.
- Rida „Concat(`title`, ' (', `director`, ')')” võtab pealkirja, lisab avava sulu, millele järgneb režissööri nimi, ja seejärel lisab lõpusulgu.
- Funktsiooni Concat() sees eraldatakse stringi osad komadega.
Skripti käivitamine MySQL Workbench annab järgmise tulemuste komplekti.
| Concat(pealkiri, '(', 'režissöör', ')') | aasta_välja antud |
|---|---|
| Kariibi mere piraadid 4 (Rob Marshall) | 2011 |
| Sarah Marshali unustamine (Nicholas Stoller) | 2008 |
| NULL | 2008 |
| Code Nimi Must (Edgar Jimz) | 2010 |
| NULL | 2007 |
| NULL | 2007 |
| NULL | 2007 |
| Honey mooners (John Schultz) | 2005 |
| NULL | 2012 |
Märge: Concat() tagastab NULL-i, kui mõni argument on NULL, mistõttu näitavad filmid ilma režissöörita ülalpool NULL-i.
Aliasväljade nimed
Ülaltoodud näide tagastas välja nimena liitmiskoodi. Kirjeldavama väljanime kasutamiseks tulemuste komplektis rakendage veeru aliast. Põhisüntaks on järgmine.
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 aliase nime.
- "alias_nimi" on alias, mis tagastatakse tulemuste komplektis väljanimena.
Sama päring sisukama veerunimega:
SELECT Concat(`title`, ' (', `director`, ')') AS `Concat`, `year_released` FROM `movies`;
Saame järgmise tulemuse.
| Concat | aasta_välja antud |
|---|---|
| Kariibi mere piraadid 4 (Rob Marshall) | 2011 |
| Sarah Marshali unustamine (Nicholas Stoller) | 2008 |
| NULL | 2008 |
| Code Nimi Must (Edgar Jimz) | 2010 |
| NULL | 2007 |
| NULL | 2007 |
| NULL | 2007 |
| Honey mooners (John Schultz) | 2005 |
| NULL | 2012 |
Liikmete nimekirja saamine koos sünniaastaga
Oletame, et tahame kõigi liikmete nimekirja, mis näitab liikmenumbrit, täisnimesid ja sünniaastat. Saame kasutada LEFT stringfunktsiooni, et näidatatract sünniaasta sünnikuupäeva väljalt.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
SIIN
- "VASAKUD(`sünni_kuupäev,4)" the,en LEFT string funktsioon aktsepteerib parameetrina sünnikuupäeva ja tagastab vasakult ainult 4 tähemärki.
- "AS `sünni_aasta" on veeru pseudonüümi nimi meie tulemustes tagasi. AS-i märksõna on valikuline; võid selle välja jätta ja päring ikka töötab.
Päringu käivitamine MySQL Workbench myflixdb vastu annab meile allpool näidatud tulemused.
| liikme_number | täis_nimed | sünni_aasta |
|---|---|---|
| 1 | Janet Jones | 1980 |
| 2 | Janet Smith Jones | 1980 |
| 3 | Robert Phil | 1989 |
| 4 | Gloria Williams | 1984 |
Käsitsi kirjutatud päringud on ainult üks tee tulemuste komplekti. Workbench saab ka lause teie eest luua.
SQL-i kasutamine MySQL Workbench
Nüüd hakkame kasutama MySQL Töölaud skripti genereerimiseks, mis kuvab kõik meie kategooriate tabeli väljanimed.
1. Paremklõpsake kategooriate tabelil. Klõpsake valikul „Vali read – piirang 1000”.
2. MySQL Workbench loob automaatselt SQL-päringu ja kleebib selle redaktorisse.
3. Päringu tulemused kuvatakse redaktori all olevas ruudustikus.
Nagu ekraanipildilt näha, ei kirjutanud me SELECT-lauset ise. MySQL Workbench genereeris selle meie jaoks.
Miks kasutada SELECT SQL käsku, kui meil on MySQL Töölaud?
Võib-olla mõtled, miks peaksid õppima SQL SELECT käsku, kui selline tööriist nagu MySQL Workbench tagastab samad tulemused ilma SQL-keele tundmiseta. See otsetee on võimalik, aga SELECT käsu õppimine annab sulle rohkem paindlikkus ja kontrollida üle sinu SQL SELECT avaldused.
MySQL Töölaud kuulub kategooriasse „Päring näite järgi„(QBE) tööriistad. See on mõeldud SQL-lausete kiiremaks genereerimiseks ja kasutajate tootlikkuse suurendamiseks.
SQL SELECT käsu õppimine võimaldab teil luua keerulised päringud mida ei saa Query by Example utiliitide, näiteks MySQL Töölaud.
Tootlikkuse parandamiseks saate genereeri kood sisse MySQL Workbench, Siis kohandada tal vastama teie nõueteleSee on võimalik ainult siis, kui sa mõistad, kuidas SQL-laused töötavad.



