MySQL SELECT izjava s primjerima
U čemu je SELECT upit MySQL?
SELECT QUERY koristi se za dohvaćanje podataka iz MySQL baza podataka. Baze podataka pohranjuju podatke za kasnije dohvaćanje. Svrha od MySQL Odaberite vraćanje iz tablica baze podataka jednog ili više redaka koji odgovaraju zadanom kriteriju. Upit odabira može se koristiti u skriptnom jeziku kao što su PHP, Ruby ili ga možete izvršiti putem naredbenog retka.
Sintaksa SQL naredbe SELECT
To je najčešće korištena SQL naredba i ima sljedeću opću sintaksu
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)
OVDJE
- SELECT je SQL ključna riječ koja bazi podataka daje do znanja da želite dohvatiti podatke.
- [DISTINKTNO | SVI] su neobavezne ključne riječi koje se mogu koristiti za fino podešavanje rezultata vraćenih iz SQL SELECT naredbe. Ako ništa nije specificirano, ALL se pretpostavlja kao zadano.
- {*| [fieldExpression [AS newName]} barem jedan dio mora biti naveden, “*” je odabrao sva polja iz navedenog naziva tablice, fieldExpression izvodi neke izračune na navedenim poljima kao što je zbrajanje brojeva ili spajanje dva polja niza u jedno.
- IZ tableName je obavezan i mora sadržavati najmanje jednu tablicu, više tablica mora biti odvojeno zarezima ili spojeno pomoću ključne riječi JOIN.
- GDJE uvjet nije obavezan, može se koristiti za specificiranje kriterija u skupu rezultata vraćenom iz upita.
- GROUP BY koristi se za sastavljanje zapisa koji imaju iste vrijednosti polja.
- IMAJUĆI uvjet se koristi za određivanje kriterija kada se radi pomoću ključne riječi GROUP BY.
- NARUČITE PO koristi se za određivanje redoslijeda sortiranja skupa rezultata.
*
Simbol zvjezdice koristi se za odabir svih stupaca u tablici. Primjer jednostavne naredbe SELECT izgleda kao dolje prikazan.
SELECT * FROM `members`;
Gornja izjava odabire sva polja iz tablice članova. Točka-zarez je iskaz koji završava. Nije obavezno, ali se smatra dobrom praksom tako završiti svoje izjave.
Primjeri iz prakse
Kliknite za preuzimanje myflix DB korišten za praktične primjere.
Možete naučiti uvesti .sql datoteku u MySQL radni stol
Primjeri su izvedeni na sljedeće dvije tablice
Tablica 1: Članovi stol
članski broj | puna_imena | rod | Datum rođenja | fizička adresa | poštanska adresa | kontakt_ broj | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | ženski | 21-07-1980 | Prva ulica Parcela broj 4 | Privatna torba | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | ženski | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | Muški | 12-07-1989 | 3. ulica 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | ženski | 14-02-1984 | 2. ulica 23 | NULL | NULL | NULL |
Tablica 2: filmovi stol
film_id | naslov | direktor | godina_izdana | kategorija_id |
---|---|---|---|---|
1 | Pirati s Kariba 4 | Rob Marshall | 2011 | 1 |
2 | Zaboravljam Saru Marshal | Nicholas stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Kodno ime Black | Edgar Jimz | 2010 | NULL |
5 | Tatine djevojčice | NULL | 2007 | 8 |
6 | Anđeli i demoni | NULL | 2007 | 6 |
7 | Davincijev kod | NULL | 2007 | 6 |
9 | Honey mjesečari | John Schultz | 2005 | 8 |
16 | 67% kriv | NULL | 2012 | NULL |
Dobivanje popisa članova
Pretpostavimo da želimo dobiti popis svih registriranih članova knjižnice iz naše baze podataka, za to bismo upotrijebili dolje prikazanu skriptu.
SELECT * FROM `members`;
Izvršavanje gornje skripte u MySQL radni stol daje sljedeće rezultate.
članski broj | puna_imena | rod | Datum rođenja | fizička adresa | poštanska adresa | kontakt_ broj | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | ženski | 21-07-1980 | Prva ulica Parcela broj 4 | Privatna torba | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | ženski | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | Muški | 12-07-1989 | 3. ulica 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | ženski | 14-02-1984 | 2. ulica 23 | NULL | NULL | NULL |
Naš gornji upit vratio je sve retke i stupce iz tablice članova.
Recimo da smo zainteresirani samo za dobivanje samo polja full_names, gender, physical_address i email. Sljedeća skripta bi nam pomogla da to postignemo.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Izvršavanje gornje skripte u MySQL radni stol daje sljedeće rezultate.
puna_imena | rod | fizička adresa | |
---|---|---|---|
Janet Jones | ženski | Prva ulica Parcela broj 4 | janetjones@yagoo.cm |
Janet Smith Jones | ženski | Melrose 123 | jj@fstreet.com |
Robert Phil | Muški | 3. ulica 34 | rm@tstreet.com |
Gloria Williams | ženski | 2. ulica 23 | NULL |
Dobivanje popisa filmova
Zapamtite da smo u našoj gornjoj raspravi spomenuli izraze koji su korišteni u SELECT naredbama. Recimo da želimo dobiti popis filmova iz naše baze podataka. Želimo imati naslov filma i ime redatelja filma u jednom polju. Ime redatelja treba biti u zagradama. Također želimo dobiti godinu kada je film objavljen. U tome nam pomaže sljedeća skripta.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
OVDJE
- Concat () MySQL koristi se funkcija spajanja vrijednosti stupaca.
- Redak “Concat (`title`, ' (', `director`, ')') dobiva naslov, dodaje početnu zagradu iza koje slijedi ime redatelja, a zatim dodaje završnu zagradu.
Dijelovi niza odvajaju se zarezima u funkciji Concat ().
Izvršavanje gornje skripte u MySQL Workbench proizvodi sljedeći skup rezultata.
Concat(`naslov`, ' (', `redatelj`, ')') | godina_izdana |
---|---|
Pirati s Kariba 4 (Rob Marshall) | 2011 |
Forgetting Sarah Marshal (Nicholas Stoller) | 2008 |
NULL | 2008 |
Kodno ime Black (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey mjesečari (John Schultz) | 2005 |
NULL | 2012 |
Nazivi polja alijasa
Gornji primjer vratio je kod spajanja kao naziv polja za naše rezultate. Pretpostavimo da želimo upotrijebiti opisniji naziv polja u našem skupu rezultata. Koristili bismo zamjensko ime stupca da bismo to postigli. Slijedi osnovna sintaksa za ime pseudonima stupca
SELECT `column_name|value|expression` [AS] `alias_name`;
OVDJE
- “SELECT ` naziv_stupca|vrijednost|izraz `” je regularna izjava SELECT koja može biti naziv stupca, vrijednost ili izraz.
- "[KAO]" je izborna ključna riječ prije aliasa koji označava izraz, vrijednost ili naziv polja koji će se vratiti kao.
- “`alias_name`” je alias ime koje želimo vratiti u naš skup rezultata kao naziv polja.
Gore navedeni upit sa smislenijim nazivom stupca
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Dobivamo sljedeći rezultat
Konkat | godina_izdana |
---|---|
Pirati s Kariba 4 (Rob Marshall) | 2011 |
Forgetting Sarah Marshal (Nicholas Stoller) | 2008 |
NULL | 2008 |
Kodno ime Black (Edgar Jimz) | 2010 |
NULL | 2007 |
NULL | 2007 |
NULL | 2007 |
Honey mjesečari (John Schultz) | 2005 |
NULL | 2012 |
Dobivanje popisa članova s godinom rođenja
Pretpostavimo da želimo dobiti popis svih članova koji prikazuje članski broj, puna imena i godinu rođenja, možemo upotrijebiti funkciju niza LIJEVO da izdvojimo godinu rođenja iz polja datuma rođenja. Skripta prikazana u nastavku pomaže nam u tome.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
OVDJE
- “LEFT(`datum_rođenja`,4)” o LIJEVA funkcija niza prihvaća datum rođenja kao parametar i vraća samo 4 znaka slijeva.
- “KAO `godina_rođenja`” je ime stupca alias koji će biti vraćen u našim rezultatima. Obratite pažnju na Ključna riječ AS nije obavezna, možete ga izostaviti i upit će i dalje funkcionirati.
Izvršavanje gornjeg upita u MySQL workbench u odnosu na myflixdb daje nam rezultate prikazane u nastavku.
članski broj | puna_imena | godina rođenja |
---|---|---|
1 | Janet Jones | 1980 |
2 | Janet Smith Jones | 1980 |
3 | Robert Phil | 1989 |
4 | Gloria Williams | 1984 |
korištenje SQL-a MySQL Radna tezga
Sada ćemo koristiti MySQL workbench za generiranje skripte koja će prikazati sva imena polja iz naše tablice kategorija.
1. Kliknite desnom tipkom miša na tablicu s kategorijama. Kliknite na "Odaberi retke - Ograniči 1000"
2. MySQL workbench će automatski stvoriti SQL upit i zalijepiti ga u editor.
3. Prikazat će se rezultati upita
Primijetite da nismo sami napisali naredbu SELECT. MySQL workbench ga je generirao za nas.
Zašto koristiti SELECT SQL naredbu kada imamo MySQL Radni stol?
Sada možda razmišljate zašto naučiti SQL SELECT naredbu za upit podataka iz baze podataka kada jednostavno možete koristiti alat kao što je MySQL radnih stolova za dobivanje istih rezultata bez poznavanja SQL jezika. Naravno da je to moguće, ali učenje kako koristiti naredbu SELECT daje vam više fleksibilnost međutim kontrola preko vašeg SQL SELECT naredbe.
MySQL radni stol spada u kategoriju "Upit prema primjeru” QBE alati. Namijenjen je bržem generiranju SQL izjava kako bi se povećala produktivnost korisnika.
Učenje SQL naredbe SELECT može vam omogućiti stvaranje složeni upiti koji se ne mogu jednostavno generirati pomoću uslužnih programa Query by Example kao što su MySQL radni stol.
Za poboljšanje produktivnosti možete generirajte kod pomoću MySQL radna tezga tada prilagoditi to zadovoljiti vaše zahtjeve. To se može dogoditi samo ako razumijete kako SQL naredbe rade!
Rezime
- Ključna riječ SQL SELECT koristi se za upit podataka iz baze podataka i to je najčešće korištena naredba.
- Najjednostavniji oblik ima sintaksu “SELECT * FROM tableName;”
- Izrazi se također mogu koristiti u naredbi select. Primjer "ODABERITE količinu + cijenu IZ prodaje"
- SQL SELECT naredba također može imati druge izborne parametre kao što su WHERE, GROUP BY, HAVING, ORDER BY. O njima će biti riječi kasnije.
- MySQL workbench može pomoći u razvoju SQL naredbi, njihovom izvršavanju i stvaranju izlaznih rezultata u istom prozoru.