Izjava MySQL SELECT s primjerima

Sadržaj:

Anonim

Što je SELECT upit u MySQL-u?

SELECT QUERY koristi se za dohvaćanje podataka iz MySQL baze podataka. Baze podataka pohranjuju podatke za kasnije preuzimanje. Svrha MySQL Select je vratiti iz tablica baze podataka jedan ili više redaka koji odgovaraju zadanim kriterijima. Upit za odabir može se koristiti u skriptnom jeziku kao što je PHP, Ruby ili ga možete izvršiti putem naredbenog retka.

Sintaksa naredbe SQL 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 daje bazi podataka do znanja da želite dohvatiti podatke.
  • [RAZLIKUJTE | ALL] su neobavezne ključne riječi koje se mogu koristiti za fino podešavanje rezultata vraćenih iz SQL SELECT izraza. Ako ništa nije navedeno, tada se kao zadani pretpostavlja ALL.
  • {* | [fieldExpression [AS newName]} mora biti naveden najmanje jedan dio, "*" je odabrao sva polja iz navedenog imena tablice, fieldExpression izvodi neka izračunavanja na navedenim poljima, poput dodavanja brojeva ili spajanja dva polja niza u jedno.
  • FROM tableName je obvezno i ​​mora sadržavati najmanje jednu tablicu, više tablica mora se odvojiti zarezima ili spojiti pomoću ključne riječi JOIN.
  • WHERE uvjet nije obavezan, može se koristiti za određivanje kriterija u skupu rezultata vraćenom iz upita.
  • GROUP BY koristi se za sastavljanje zapisa koji imaju iste vrijednosti polja.
  • Uvjet HAVING koristi se za određivanje kriterija pri radu pomoću ključne riječi GROUP BY.
  • ORDER BY koristi se za određivanje redoslijeda sortiranja skupa rezultata.

*

Simbol zvijezda koristi se za odabir svih stupaca u tablici. Primjer jednostavne SELECT izjave izgleda poput prikazanog u nastavku.

SELECT * FROM `members`;

Gornja izjava odabire sva polja iz tablice članova. Točka i zarez je izjava koja se završava. Nije obvezno, ali smatra se dobrom praksom tako završavati svoje izjave.

Praktični primjeri

Kliknite za preuzimanje myflix DB koji se koristi za praktične primjere.

Možete naučiti uvoz datoteke .sql u MySQL WorkBench

Primjeri su izvedeni na sljedeće dvije tablice

Tablica 1: tablica članova

članski broj puna_imena spol Datum rođenja fizička adresa poštanska adresa kont._broj e-mail
1 Janet Jones Žena 21-07-1980 Parcela prve ulice br. 4 Privatna torba 0759 253 542 Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta.
2 Janet Smith Jones Žena 23-06-1980 Melrose 123 NULL NULL Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta.
3 Robert Phil Muški 12-07-1989 3. ulica 34 NULL 12345 Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta.
4 Gloria Williams Žena 14-02-1984 2. ulica 23 NULL NULL NULL

Tablica 2: tablica filmova

film_id titula direktor godina_izdanje id_kategorije
1 Karipski gusari 4 Rob Marshall 2011 1
2 Zaboravivši Saru Maršal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Kodni naziv Crna Edgar Jimz 2010 NULL
5 Tatine djevojčice NULL 2007 8
6 Anđeli i demoni NULL 2007 6
7 Zakonik Davinci NULL 2007 6
9 Medeni mjesečari John Schultz 2005. godine 8
16 67% Kriv NULL 2012. godine NULL

Dobivanje popisa članova

Pretpostavimo da iz naše baze podataka želimo dobiti popis svih registriranih članova knjižnice, za to bismo koristili dolje prikazanu skriptu.

SELECT * FROM `members`;

Izvršavanje gornje skripte u MySQL workbenchu ​​daje sljedeće rezultate.

članski broj puna_imena spol Datum rođenja fizička adresa poštanska adresa kont._broj e-mail
1 Janet Jones Žena 21-07-1980 Parcela prve ulice br. 4 Privatna torba 0759 253 542 Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta.
2 Janet Smith Jones Žena 23-06-1980 Melrose 123 NULL NULL Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta.
3 Robert Phil Muški 12-07-1989 3. ulica 34 NULL 12345 Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta.
4 Gloria Williams Žena 14-02-1984 2. ulica 23 NULL NULL NULL

Naš gornji upit vratio je sve retke i stupce iz tablice članova.

Recimo da nas zanima samo dobivanje samo punih imena, spola, fizičke adrese i adrese e-pošte. Sljedeća skripta bi nam pomogla da to postignemo.

SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;

Izvršavanje gornje skripte u MySQL workbenchu ​​daje sljedeće rezultate.

puna_imena spol fizička adresa e-mail
Janet Jones Žena Parcela prve ulice br. 4 Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta.
Janet Smith Jones Žena Melrose 123 Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta.
Robert Phil Muški 3. ulica 34 Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta.
Gloria Williams Žena 2. ulica 23 NULL

Dobivanje popisa filmova

Sjetite se u našoj gornjoj raspravi da spominjemo izraze koji su korišteni u SELECT izjavama. Recimo da želimo dobiti popis filmova iz naše baze podataka. Naslov filma i ime filmskog redatelja želimo imati u jednom polju. Ime redatelja mora biti u zagradama. Također želimo dobiti godinu objavljivanja filma. U tome nam pomaže sljedeća skripta.

SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;

OVDJE

  • Koristi se funkcija Concat () MySQL koja združuje vrijednosti stupaca.
  • Redak "Concat (` title`, '(', `director`, ')') dobiva naslov, dodaje početnu zagradu nakon koje slijedi ime redatelja, a zatim dodaje završnu zagradu.

Dijelovi niza odvajaju se zarezima u funkciji Concat ().

Izvršavanje gornje skripte u MySQL radnom stolu daje sljedeći skup rezultata.

Concat (`naslov`, '(',` redatelj`, ')') godina_izdanje
Pirati s Kariba 4 (Rob Marshall) 2011
Zaborav na Saru Maršal (Nicholas Stoller) 2008
NULL 2008
Kodno ime crno (Edgar Jimz) 2010
NULL 2007
NULL 2007
NULL 2007
Medeni mjeseci (John Schultz) 2005. godine
NULL 2012. godine

Imena polja alias

Gornji je primjer vratio kôd za povezivanje kao naziv polja za naše rezultate. Pretpostavimo da želimo koristiti opisnije ime polja u našem skupu rezultata. Za to bismo koristili nadimak stupca. Slijedi osnovna sintaksa imena pseudonima stupca

SELECT `column_name|value|expression` [AS] `alias_name`;

OVDJE

  • "SELECT` ime_stupca | vrijednost | izraz `" redoviti je SELECT izraz koji može biti ime stupca, vrijednost ili izraz.
  • "[AS]" je neobavezna ključna riječ prije imena zamjenskog imena koje označava izraz, vrijednost ili naziv polja kao.
  • "` alias_name` " je alias ime koje želimo vratiti u našem rezultatu kao naziv polja.

Gornji upit sa značajnijim nazivom stupca

SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;

Dobivamo sljedeći rezultat

Concat godina_izdanje
Pirati s Kariba 4 (Rob Marshall) 2011
Zaborav na Saru Maršal (Nicholas Stoller) 2008
NULL 2008
Kodno ime crno (Edgar Jimz) 2010
NULL 2007
NULL 2007
NULL 2007
Medeni mjeseci (John Schultz) 2005. godine
NULL 2012. godine

Dobivanje popisa članova s ​​prikazom godine rođenja

Pretpostavimo da želimo dobiti popis svih članova koji pokazuju članski broj, puna imena i godinu rođenja, možemo koristiti funkciju LIJEVI niz za izdvajanje godine rođenja iz polja s datumom rođenja. U tome nam pomaže skripta prikazana u nastavku.

SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;

OVDJE

  • „LIJEVO (` date_of_birth`, 4)” LIJEVO niz funkcija prihvaća datum rođenja kao parametar i to samo vraća 4 znaka s lijeve strane.
  • "KAO` godina_rođenja` "naziv je nadimka stupca koji će se vratiti u našim rezultatima. Imajte na umu da je ključna riječ AS neobavezna , možete je izostaviti i upit će i dalje raditi.

Izvršenje gornjeg upita u MySQL radnom stolu protiv 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. godine
4 Gloria Williams 1984

SQL pomoću MySQL Workbencha

Sada ćemo koristiti MySQL radni stol za generiranje skripte koja će prikazati sva imena polja iz naše tablice kategorija.

1. Desni klik na tablicu kategorija. Kliknite "Odabir redaka - Ograničite 1000"

2. MySQL radni stol automatski će stvoriti SQL upit i zalijepiti u uređivač.

3. Rezultati upita bit će prikazani

Primijetite da sami nismo napisali SELECT izjavu. MySQL radni stol to je stvorio za nas.

Zašto koristiti naredbu SELECT SQL kada imamo MySQL Workbench?

Sada možda razmišljate zašto učiti naredbu SQL SELECT za traženje podataka iz baze podataka, kada jednostavno možete koristiti alat kao što je MySQL radni stol da biste dobili iste rezultate bez znanja SQL jezika. To je naravno moguće, ali učenje korištenja naredbe SELECT daje vam veću fleksibilnost i kontrolu nad vašim SQL SELECT izrazima .

MySQL radni stol spada u kategoriju QBE alata " Upit primjerom ". Namijenjen je bržem generiranju SQL izjava za povećanje korisničke produktivnosti.

Učenje naredbe SQL SELECT može vam omogućiti stvaranje složenih upita koji se ne mogu lako generirati pomoću uslužnih programa Query by Example poput MySQL workbencha.

Da biste poboljšali produktivnost , kôd možete generirati pomoću MySQL radnog stola, a zatim ga prilagoditi u skladu s vašim zahtjevima . To se može dogoditi samo ako razumijete kako funkcioniraju SQL izrazi!

Sažetak

  • Ključna riječ SQL SELECT koristi se za traženje podataka iz baze podataka i to je najčešće korištena naredba.
  • Najjednostavniji obrazac ima sintaksu "SELECT * FROM tableName;"
  • Izrazi se također mogu koristiti u naredbi select. Primjer "ODABERITE količinu + cijenu OD prodaje"
  • Naredba SQL SELECT može imati i druge neobavezne parametre kao što su WHERE, GROUP BY, HAVING, ORDER BY. O njima će biti riječi kasnije.
  • MySQL radni stol može pomoći u razvoju SQL izraza, njihovom izvršavanju i stvaranju izlaznih rezultata u istom prozoru.