Kaj je poizvedba SELECT v MySQL?
SELECT QUERY se uporablja za pridobivanje podatkov iz baze podatkov MySQL. Baze podatkov shranjujejo podatke za kasnejše iskanje. Namen MySQL Select je vrniti iz tabel zbirke podatkov eno ali več vrstic, ki ustrezajo določenim merilom. Izbrano poizvedbo lahko uporabite v skriptnem jeziku, kot je PHP, Ruby, ali pa jo izvedete prek ukaznega poziva.
Sintaksa stavka SQL SELECT
Je najpogosteje uporabljeni ukaz SQL in ima naslednjo splošno sintakso
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)TUKAJ
- SELECT je ključna beseda SQL, ki zbirki podatkov sporoča, da želite pridobiti podatke.
- [ZALOŽITEV | ALL] so izbirne ključne besede, s katerimi lahko natančno nastavite rezultate, vrnjene iz stavka SQL SELECT. Če nič ni določeno, se za privzeto domneva ALL.
- {* | [fieldExpression [AS newName]} mora biti podan vsaj en del, "*" je izbrala vsa polja iz navedenega imena tabele, fieldExpression izvaja nekaj izračunov na podanih poljih, na primer dodajanje številk ali sestavljanje dveh nizovnih polj v eno.
- IZ tableName je obvezno in mora vsebovati vsaj eno tabelo, več tabel je treba ločiti z vejicami ali jih združiti s ključno besedo JOIN.
- Pogoj WHERE ni obvezen, z njim lahko določite merila v naboru rezultatov, ki se vrne iz poizvedbe.
- GROUP BY se uporablja za sestavljanje zapisov z enakimi vrednostmi polj.
- Pogoj HAVING se uporablja za določanje meril pri delu s ključno besedo GROUP BY.
- ORDER BY se uporablja za določanje vrstnega reda razvrščanja nabora rezultatov.
*
Simbol zvezde se uporablja za izbiro vseh stolpcev v tabeli. Primer preprostega stavka SELECT je videti kot spodaj.
SELECT * FROM `members`;
Zgornji stavek izbere vsa polja iz tabele članov. Podpičje je stavek konča. Ni obvezno, vendar velja za dobro prakso, če tako zaključujete svoje izjave.
Praktični primeri
Kliknite, da prenesete myflix DB, ki se uporablja za praktične primere.
Datoteke .sql se lahko naučite uvoziti v MySQL WorkBench
Primeri so prikazani v naslednjih dveh tabelah
Tabela 1: tabela članov
številka_članstva | polna_imena | spol | datum rojstva | fizični naslov | poštni naslov | kont. številka | E-naslov |
---|---|---|---|---|---|---|---|
1. | Janet Jones | Ženska | 21-07-1980 | Prva ulična parcela št. 4 | Zasebna torba | 0759 253 542 | Ta e-poštni naslov je zaščiten proti smetenju. Če ga želite videti, omogočite Javascript. |
2. | Janet Smith Jones | Ženska | 23-06-1980 | Melrose 123 | NIČ | NIČ | Ta e-poštni naslov je zaščiten proti smetenju. Če ga želite videti, omogočite Javascript. |
3. | Robert Phil | Moški | 12. 7. 1989 | 3. ulica 34 | NIČ | 12345 | Ta e-poštni naslov je zaščiten proti smetenju. Če ga želite videti, omogočite Javascript. |
4. | Gloria Williams | Ženska | 14-02-1984 | 2. ulica 23 | NIČ | NIČ | NIČ |
Tabela 2: tabela filmov
movie_id | naslov | direktor | leto_izdano | id_kategorije |
---|---|---|---|---|
1. | Pirati s Karibov 4 | Rob Marshall | 2011 | 1. |
2. | Pozabi na Saro Maršal | Nicholas Stoller | 2008 | 2. |
3. | X moški | NIČ | 2008 | NIČ |
4. | Šifra Ime Črna | Edgar Jimz | 2010 | NIČ |
5. | Očetove punčke | NIČ | 2007 | 8. |
6. | Angeli in demoni | NIČ | 2007 | 6. |
7. | Zakonik Davinci | NIČ | 2007 | 6. |
9. | Medeni monari | John Schultz | 2005 | 8. |
16. | 67% Kriv | NIČ | 2012 | NIČ |
Pridobivanje seznama članov
Recimo, da želimo iz naše zbirke podatkov dobiti seznam vseh registriranih članov knjižnice, za to bi uporabili spodnji skript.
SELECT * FROM `members`;
Izvedba zgornjega skripta v delovnem okolju MySQL povzroči naslednje rezultate.
številka_članstva | polna_imena | spol | datum rojstva | fizični naslov | poštni naslov | kont. številka | E-naslov |
---|---|---|---|---|---|---|---|
1. | Janet Jones | Ženska | 21-07-1980 | Prva ulična parcela št. 4 | Zasebna torba | 0759 253 542 | Ta e-poštni naslov je zaščiten proti smetenju. Če ga želite videti, omogočite Javascript. |
2. | Janet Smith Jones | Ženska | 23-06-1980 | Melrose 123 | NIČ | NIČ | Ta e-poštni naslov je zaščiten proti smetenju. Če ga želite videti, omogočite Javascript. |
3. | Robert Phil | Moški | 12. 7. 1989 | 3. ulica 34 | NIČ | 12345 | Ta e-poštni naslov je zaščiten proti smetenju. Če ga želite videti, omogočite Javascript. |
4. | Gloria Williams | Ženska | 14-02-1984 | 2. ulica 23 | NIČ | NIČ | NIČ |
Zgornja poizvedba je vrnila vse vrstice in stolpce iz tabele članov.
Recimo, da nas zanima samo, da dobimo samo polna imena, spol, fizični_naslov in e-poštna polja. Naslednji skript bi nam pomagal doseči to.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Izvedba zgornjega skripta v delovnem okolju MySQL povzroči naslednje rezultate.
polna_imena | spol | fizični naslov | E-naslov |
---|---|---|---|
Janet Jones | Ženska | Prva ulična parcela št. 4 | Ta e-poštni naslov je zaščiten proti smetenju. Če ga želite videti, omogočite Javascript. |
Janet Smith Jones | Ženska | Melrose 123 | Ta e-poštni naslov je zaščiten proti smetenju. Če ga želite videti, omogočite Javascript. |
Robert Phil | Moški | 3. ulica 34 | Ta e-poštni naslov je zaščiten proti smetenju. Če ga želite videti, omogočite Javascript. |
Gloria Williams | Ženska | 2. ulica 23 | NIČ |
Pridobivanje seznama filmov
V zgornji razpravi ne pozabite, da omenjamo izraze, ki so bili uporabljeni v stavkih SELECT. Recimo, da želimo iz naše baze podatkov dobiti seznam filmov. Naslov filma in ime režiserja želimo imeti na enem področju. V oklepajih naj bo ime režiserja. Prav tako želimo dobiti leto izdaje filma. Pri tem nam pomaga naslednji skript.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
TUKAJ
- Uporabljena je funkcija Concat () MySQL, ki združuje vrednosti stolpcev.
- Vrstica "Concat (` title`, '(', `director`, ')') dobi naslov, doda začetni oklepaj, ki mu sledi ime direktorja, nato pa zaključni oklepaj.
Deli niza so ločeni z vejicami v funkciji Concat ().
Izvedba zgornjega skripta v delovnem okolju MySQL povzroči naslednji nabor rezultatov.
Concat (`title`, '(',` director`, ')') | leto_izdano |
---|---|
Pirati s Karibov 4 (Rob Marshall) | 2011 |
Pozaba na Saro Maršal (Nicholas Stoller) | 2008 |
NIČ | 2008 |
Šifra imena črna (Edgar Jimz) | 2010 |
NIČ | 2007 |
NIČ | 2007 |
NIČ | 2007 |
Medeni mesec (John Schultz) | 2005 |
NIČ | 2012 |
Imena vzdevkov
Zgornji primer je vrnil kodo združevanja kot ime polja za naše rezultate. Recimo, da želimo v našem naboru rezultatov uporabiti bolj opisno ime polja. Za to bi uporabili vzdevek stolpca. Sledi osnovna sintaksa imena vzdevka stolpca
SELECT `column_name|value|expression` [AS] `alias_name`;
TUKAJ
- "SELECT` ime_ stolpca | vrednost | izraz `" je običajni stavek SELECT, ki je lahko ime stolpca, vrednost ali izraz.
- "[AS]" je neobvezna ključna beseda, preden bo ime vzdevka, ki označuje izraz, vrednost ali ime polja, vrnjeno kot.
- "` alias_name` " je ime vzdevka, ki ga želimo vrniti v nabor rezultatov kot ime polja.
Zgornja poizvedba z bolj smiselnim imenom stolpca
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Dobili smo naslednji rezultat
Concat | leto_izdano |
---|---|
Pirati s Karibov 4 (Rob Marshall) | 2011 |
Pozaba na Saro Maršal (Nicholas Stoller) | 2008 |
NIČ | 2008 |
Šifra imena črna (Edgar Jimz) | 2010 |
NIČ | 2007 |
NIČ | 2007 |
NIČ | 2007 |
Medeni mesec (John Schultz) | 2005 |
NIČ | 2012 |
Pridobivanje seznama članov, ki prikazuje leto rojstva
Recimo, da želimo dobiti seznam vseh članov, ki kažejo člansko številko, polna imena in leto rojstva, lahko s funkcijo LEFT string izvlečemo leto rojstva iz polja z datumom rojstva. Pri tem nam pomaga spodnji scenarij.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
TUKAJ
- "LEVO (` date_of_birth`, 4) " funkcija LEVO niz sprejema datum rojstva kot parameter in le vrne 4 znake z leve.
- "AS` year_of_birth` " je ime vzdevka stolpca, ki bo vrnjeno v naših rezultatih. Upoštevajte, da je ključna beseda AS neobvezna , jo lahko izpustite in poizvedba bo še vedno delovala.
Izvedba zgornje poizvedbe v delovnem okolju MySQL v primerjavi z myflixdb nam da spodnje rezultate.
članstvo_število | polna_imena | leto rojstva |
---|---|---|
1. | Janet Jones | 1980 |
2. | Janet Smith Jones | 1980 |
3. | Robert Phil | 1989 |
4. | Gloria Williams | 1984 |
SQL z uporabo MySQL Workbench
Zdaj bomo s pomočjo delovne mize MySQL ustvarili skript, ki bo prikazal vsa imena polj iz tabele kategorij.
1. Z desno miškino tipko kliknite tabelo kategorij. Kliknite "Izberi vrstice - Omejitev 1000"
2. Delovni pult MySQL bo samodejno ustvaril poizvedbo SQL in prilepil v urejevalnik.
3. Rezultati poizvedbe bodo prikazani
Upoštevajte, da stavka SELECT nismo napisali sami. MySQL delovna miza ga je ustvarila za nas.
Zakaj uporabljati ukaz SELECT SQL, ko imamo MySQL Workbench?
Zdaj morda razmišljate, zakaj bi se naučili ukaza SQL SELECT za poizvedovanje po podatkih iz baze podatkov, če pa lahko preprosto uporabite orodje, kot je MySQL delovna miza, da dobite enake rezultate brez znanja jezika SQL. Seveda je to mogoče, toda učenje uporabe ukaza SELECT vam omogoča večjo prilagodljivost in nadzor nad izjavami SQL SELECT .
Delovna miza MySQL spada v kategorijo orodij QBE " Poizvedba na primeru ". Namenjen je hitrejšemu ustvarjanju stavkov SQL za povečanje uporabniške produktivnosti.
Če se naučite ukaza SQL SELECT, lahko ustvarite zapletene poizvedbe, ki jih ni mogoče enostavno ustvariti s pomočjo pripomočkov Query by Example, kot je MySQL workbench.
Za izboljšanje produktivnosti lahko ustvarijo kodo uporabljate MySQL, se delovno mizo , potem prilagoditi tako, da ustrezajo vašim zahtevam . To se lahko zgodi le, če razumete, kako delujejo stavki SQL!
Povzetek
- Ključna beseda SQL SELECT se uporablja za iskanje podatkov iz baze podatkov in je najpogosteje uporabljeni ukaz.
- Najenostavnejši obrazec ima sintakso "SELECT * FROM tableName;"
- Izrazi se lahko uporabljajo tudi v stavku select. Primer "IZBERITE količino + ceno OD prodaje"
- Ukaz SQL SELECT ima lahko tudi druge neobvezne parametre, kot so WHERE, GROUP BY, HAVING, ORDER BY. O njih bomo razpravljali kasneje.
- Delovna miza MySQL lahko pomaga razvijati stavke SQL, jih izvajati in ustvarjati izhodne rezultate v istem oknu.