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.

  • 🔎 Põhieesmärk: SELECT hangib käsurealt või PHP-st kriteeriumile vastavad salvestatud read. Pythonja teistes keeltes.
  • 🧩 Süntaksi järjekord: Käsud SELECT, FROM, WHERE, GROUP BY, HAVING ja ORDER BY peavad esinema selles fikseeritud järjekorras.
  • Tähe otsetee: SELECT * FROM `members`; tagastab kõik veerud, samas kui veergude selgesõnaline nimetamine hoiab tulemuste komplektid väiksemad ja kiiremad.
  • 🔗 Väljendid: Concat() ühendab veergude väärtused ja LEFT() kärbib märke, nii et arvutatud väljad kuvatakse otse tulemuste komplektis.
  • ???? ️ Veergude aliased: Valikuline märksõna AS nimetab ümber iga avaldise, asendades loetamatud päised (nt Concat(`title`)) selgete siltidega.
  • 🖱️ Töölaua võrdlus: MySQL Workbench genereerib päringuid visuaalselt, kuid keeruka ja täpse otsingu jaoks on endiselt vajalikud käsitsi kirjutatud SELECT-laused.

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.

SELECT päring sisse MySQL

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 e-mail
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 e-mail
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 e-mail
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.

SQL-i kasutamine MySQL Workbench

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.

Mõistmise MySQL SELECT avaldus

KKK

Tavaliselt jah. SELECT * loeb iga veeru, sealhulgas suured teksti- ja blob-väljad, mida te ei pruugi vajada, ning blokeerib indeksite katmise. Veergude nimetamine hoiab tulemuste komplekti väiksemana ja päringu kiiremana.

Märksõnad nagu SELECT ja FROM ei ole tõstutundlikud. Stringide võrdlused järgivad veeru sortimist, seega tõstutundetu sortimine, näiteks utf8mb4_0900_ai_ci, käsitleb „Janet” ja „janet” võrdsetena.

Tavaliselt on põhjuseks puuduv indeks. Käivita enne päringut EXPLAIN, et näha, kas MySQL teostab täieliku tabeli skannimise, seejärel indekseerib filtreeritud või ühendatud veerud ja tagastab ainult vajalikud read.

Jah. Tekstist SQL-i teisendamise assistendid teisendavad tavalise päringu SELECT-lauseks, kui nad teie skeemi tunnevad. RevVaadake loodud ühendusi ja filtreid, sest tehisintellekti mudel saab välja mõelda veerunimesid, mida pole olemas.

Ei. Tehisintellekt koostab päringu kiiresti, aga sa kontrollid ikkagi loogikat, ühendusi ja jõudlust. MySQL WorkbenchSELECT-i tundmine võimaldab teil vale tulemuse enne tootmiskeskkonda jõudmist tuvastada.

Võta see postitus kokku järgmiselt: