MySQL SELECT izjava s primjerima

⚡ Pametni sažetak

The MySQL Naredba SELECT dohvaća retke iz jedne ili više tablica, a svaki primjer u nastavku izvršava se na myflix primjeru baze podataka, prelazeći s običnog zvjezdastog upita na izraze, aliase stupaca i funkcije stringova.

  • 🔎 Osnovna svrha: SELECT dohvaća pohranjene retke koji odgovaraju kriteriju, iz naredbenog retka ili iz PHP-a, Python, i drugim jezicima.
  • 🧩 Redoslijed sintakse: SELECT, FROM, WHERE, GROUP BY, HAVING i ORDER BY moraju se pojaviti u tom fiksnom redoslijedu.
  • ⭐ Prečac sa zvjezdicom: SELECT * FROM `members`; vraća svaki stupac, dok eksplicitno imenovanje stupaca održava skupove rezultata manjim i bržim.
  • 🔗 Izrazi: Concat() spaja vrijednosti stupaca, a LEFT() skraćuje znakove, tako da se izračunata polja pojavljuju izravno u skupu rezultata.
  • 🏷️ Aliasi stupaca: Neobavezna ključna riječ AS preimenuje bilo koji izraz, zamjenjujući nečitljive zaglavlja poput Concat(`title`) jasnim oznakama.
  • 🖱️ Usporedba radnih stolova: MySQL Workbench vizualno generira upite, no rukom pisani SELECT izrazi ostaju neophodni za složeno i precizno pretraživanje.

Što je SELECT upit u MySQL?

SELECT upit koristi se za dohvaćanje podataka iz MySQL baza podataka. Baze podataka pohranjuju podatke za kasnije dohvaćanje. Svrha od MySQL SELECT upit vraća jedan ili više redaka iz tablica baze podataka koji odgovaraju zadanom kriteriju. SELECT upit se može koristiti u skriptnom jeziku poput PHP-a ili Rubyja ili ga možete izvršiti iz naredbenog retka.

SELECT upit u MySQL

Budući da ćete najčešće pokretati naredbu SELECT, isplati se naučiti njezinu sintaksu prije nego što se dotaknete uzoraka podataka.

Sintaksa SQL SELECT naredbe

SELECT 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 opcionalne ključne riječi koje fino podešavaju rezultate vraćene iz SQL SELECT naredbe. Ako ništa nije navedeno, tada se ALL pretpostavlja kao zadana vrijednost.
  • {*| [fieldExpression [AS newName]} Barem jedan dio mora biti naveden. "*" odabire sva polja iz navedenog naziva tablice; fieldExpression izvodi izračune na navedenim poljima, kao što je zbrajanje brojeva ili spajanje dva polja niza znakova u jedno.
  • IZ Naziv tablice je obavezan i mora sadržavati barem jednu tablicu. Više tablica mora biti odvojeno zarezima ili spojeno ključnom riječi JOIN.
  • GDJE Uvjet je opcionalan. Određuje kriterije 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 pri radu s ključnom riječi GROUP BY.
  • NARUČITE PO koristi se za određivanje redoslijeda sortiranja skupa rezultata.

*

Simbol zvjezdice odabire sve stupce u tablici. Jednostavna SELECT naredba izgleda kao ona prikazana dolje.

SELECT * FROM `members`;

Gornja naredba odabire sva polja iz tablice članova. Točka-zarez je terminator naredbe. Nije obavezan, ali završavanje naredbi na ovaj način smatra se dobrom praksom.

ODABERI RAZLIČITO i OGRANIČI u MySQL

Dvije opcionalne ključne riječi u sintaksi zaslužuju detaljniji pogled, jer ih početnici susreću čim tablica naraste.

DISTINCT uklanja duplicirane retke iz skupa rezultata. Tablica filmova pohranjuje nekoliko filmova objavljenih 2007., pa običan upit ponavlja tu godinu. DISTINCT vraća svaku vrijednost jednom.

SELECT DISTINCT `year_released` FROM `movies`;

OGRANIČAVA ograničava broj vraćenih redaka, što štiti klijenta od upita koji bi inače izvukao milijune zapisa.

SELECT * FROM `movies` LIMIT 5;
Riječ Ono što se također Kada ga koristiti
SVE (zadano) Vraća svaki odgovarajući redak, uključujući duplikate Brojanje ili popisivanje sirovih zapisa
DISTINCT Sažima duplicirane retke u jedan Izrada popisa jedinstvenih vrijednosti
OGRANIČAVA Vraća samo prvih N redaka Pregled podataka ili rezultati podjele na stranice

Nakon što je sintaksa utvrđena, uzorak baze podataka oživljava ove klauzule.

Praktični primjeri naredbe SELECT

Kliknite za preuzimanje myflix baza podataka korištena za praktične primjere.

Možete naučiti kako uvesti .sql datoteku u MySQL Radna tezga.

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 e-mail
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 Code Ime Crno Edgar Jimz 2010 NULL
5 Tatine djevojčice NULL 2007 8
6 Anđeli i demoni NULL 2007 6
7 Da Vinci Code NULL 2007 6
9 Honey moonERS John Schultz 2005 8
16 67% kriv NULL 2012 NULL

Dobivanje popisa članova

Pretpostavimo da želimo popis svih registriranih članova knjižnice iz naše baze podataka. Za to bismo upotrijebili skriptu prikazanu u nastavku.

SELECT * FROM `members`;

Izvršavanje skripte u MySQL Workbench daje sljedeće rezultate.

članski broj puna_imena rod Datum rođenja fizička adresa poštanska adresa kontakt_ broj e-mail
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

Upit je vratio sve retke i stupce iz tablice članova.

Odabir određenih stupaca

Recimo da nas zanimaju samo polja puna_imena, spol, fizička_adresa i e-pošta. Sljedeći skript to postiže.

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

Izvršavanje skripte u MySQL Workbench daje sljedeće rezultate.

puna_imena rod fizička adresa e-mail
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 pomoću izraza

Izrazi se također mogu koristiti u SELECT naredbama. Recimo da želimo popis filmova s ​​naslovom i imenom redatelja u jednom polju, redateljem u zagradama i godinom izlaska filma. Sljedeći skript to radi.

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

OVDJE

  • Concat() MySQL Funkcija spaja vrijednosti stupaca.
  • Redak „Concat(`title`, ' (', `director`, ')')” dohvaća naslov, dodaje početnu zagradu nakon koje slijedi ime redatelja, a zatim dodaje zatvorenu zagradu.
  • Dijelovi niza znakova odvojeni su zarezima unutar funkcije Concat().

Izvršavanje 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
Code Ime Black (Edgar Jimz) 2010
NULL 2007
NULL 2007
NULL 2007
Honey mooneri (John Schultz) 2005
NULL 2012

Bilješka: Concat() vraća NULL kada je bilo koji argument NULL, zbog čega filmovi bez redatelja gore prikazuju NULL.

Nazivi polja aliasa

Gornji primjer vratio je kod spajanja kao naziv polja. Za korištenje opisnijeg naziva polja u skupu rezultata primijenite pseudonim stupca. Slijedi osnovna sintaksa.

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

OVDJE

  • "SELECT `naziv_stupca|vrijednost|izraz`" je regularna SELECT naredba, koja može biti naziv stupca, vrijednost ili izraz.
  • "[KAO]" je opcionalna ključna riječ prije pseudonima.
  • “`alias_name`” je pseudonim koji se vraća u skupu rezultata kao naziv polja.

Isti upit s 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
Code Ime Black (Edgar Jimz) 2010
NULL 2007
NULL 2007
NULL 2007
Honey mooneri (John Schultz) 2005
NULL 2012

Dobivanje popisa članova s ​​godinom rođenja

Pretpostavimo da želimo popis svih članova koji prikazuje članski broj, puna imena i godinu rođenja. Možemo koristiti funkciju LEFT string za primjertracgodina rođenja iz polja za datum rođenja.

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 s lijeva.
  • “KAO `godina_rođenja`” je ime stupca alias vraćeno u našim rezultatima. Ključna riječ AS nije obavezna; možete ga izostaviti i upit će i dalje raditi.

Izvršavanje 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

Rukom pisani upiti samo su jedan put do skupa rezultata. Workbench također može izraditi naredbu za vas.

Korištenje SQL-a MySQL Radna tezga

Sada ćemo koristiti MySQL Workbench za generiranje skripte koja prikazuje sva imena polja iz naše tablice kategorija.

1. Desnom tipkom miša kliknite tablicu Kategorije. Kliknite na "Odaberi retke – Ograniči na 1000".

2. MySQL Workbench automatski kreira SQL upit i lijepi ga u editor.

3. Rezultati upita prikazani su u mreži ispod uređivača.

korištenje SQL-a MySQL Radna tezga

Kao što snimka zaslona pokazuje, nismo sami napisali SELECT naredbu. MySQL Workbench ga je generirao za nas.

Zašto koristiti SQL naredbu SELECT kada imamo MySQL Radni stol?

Možda se pitate zašto biste trebali naučiti SQL naredbu SELECT kada alat poput MySQL Workbench vraća iste rezultate bez ikakvog znanja SQL jezika. Taj prečac je moguć, ali učenje naredbe SELECT daje vam više fleksibilnost i kontrola preko vašeg SQL SELECT naredbe.

MySQL Radni stol spada u kategoriju "Upit prema primjeru” (QBE) alati. Namijenjen je bržem generiranju SQL naredbi i povećanju produktivnosti korisnika.

Učenje SQL naredbe SELECT omogućuje vam stvaranje složeni upiti koje se ne mogu lako generirati pomoću uslužnih programa Query by Example kao što su MySQL Radni stol.

Za poboljšanje produktivnosti možete generirajte kod u MySQL Radna tezga, A zatim prilagoditi to zadovoljiti vaše zahtjeveTo je moguće samo kada shvatite kako SQL naredbe funkcioniraju.

Razumijevanje MySQL SELECT izraz

Pitanja i odgovori

Obično da. SELECT * čita svaki stupac, uključujući velika tekstualna i blob polja koja vam možda neće trebati, i blokira prekrivanje indeksa. Imenovanje stupaca smanjuje skup rezultata i ubrzava upit.

Ključne riječi poput SELECT i FROM ne razlikuju velika i mala slova. Usporedbe stringova slijede sortiranje stupca, pa sortiranje koje nije osjetljivo na velika i mala slova, poput utf8mb4_0900_ai_ci, tretira "Janet" i "janet" kao jednake.

Nedostatak indeksa je uobičajeni uzrok. Pokrenite EXPLAIN prije upita kako biste vidjeli je li MySQL izvodi potpuno skeniranje tablice, zatim indeksira filtrirane ili spojene stupce i vraća samo retke koji su vam potrebni.

Da. Text-to-SQL asistenti pretvaraju običan zahtjev u SELECT naredbu nakon što znaju vašu shemu. Revpogledajte generirane spojeve i filtere, jer AI model može izmisliti nazive stupaca koji ne postoje.

Ne. AI brzo izrađuje upit, ali i dalje provjeravate logiku, spajanja i performanse u MySQL Radna tezgaPoznavanje SELECT-a vam omogućuje uočavanje pogrešnog rezultata prije nego što dođe u produkciju.

Sažmite ovu objavu uz: