Izjava MySQL SELECT s primeri

Kazalo:

Anonim

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.