Čo je SELECT dotaz v MySQL?
SELECT QUERY sa používa na načítanie údajov z databázy MySQL. Databázy ukladajú údaje na neskoršie získanie. Účelom MySQL Select je vrátiť z databázových tabuliek jeden alebo viac riadkov, ktoré zodpovedajú daným kritériám. Select query možno použiť v skriptovacom jazyku ako PHP, Ruby alebo ho môžete vykonať pomocou príkazového riadku.
Syntax príkazu SQL SELECT
Je to najčastejšie používaný príkaz SQL a má nasledujúcu všeobecnú syntax
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)TU
- SELECT je kľúčové slovo SQL, ktoré dáva databáze vedieť, že chcete načítať údaje.
- [DISTINCT | VŠETKY] sú voliteľné kľúčové slová, ktoré možno použiť na jemné doladenie výsledkov vrátených z príkazu SQL SELECT. Ak nie je zadané nič, použije sa ako predvolené ALL.
- {* | [fieldExpression [AS newName]} musí byť zadaná aspoň jedna časť, "*" vyberie všetky polia zo zadaného názvu tabuľky, fieldExpression vykoná určité výpočty v zadaných poliach, ako napríklad pridanie čísel alebo spojenie dvoch reťazcových polí do jedného.
- FROM tableName je povinné a musí obsahovať najmenej jednu tabuľku. Viaceré tabuľky musia byť oddelené čiarkami alebo spojené pomocou kľúčového slova JOIN.
- KDE je podmienka voliteľná, je možné ju použiť na zadanie kritérií vo výsledkovej sade vrátenej z dotazu.
- GROUP BY sa používa na zostavenie záznamov, ktoré majú rovnaké hodnoty poľa.
- Podmienka HAVING sa používa na špecifikáciu kritérií pri práci s kľúčovým slovom GROUP BY.
- ORDER BY sa používa na určenie poradia triedenia výsledkovej sady.
*
Symbol Hviezda sa používa na výber všetkých stĺpcov v tabuľke. Príklad jednoduchého príkazu SELECT vyzerá ako ten, ktorý je uvedený nižšie.
SELECT * FROM `members`;
Vyššie uvedené vyhlásenie vyberie všetky polia z tabuľky členov. Bodkočiarka je príkaz na ukončenie. Nie je to povinné, ale považuje sa za osvedčený postup na ukončenie takýchto výrokov.
Praktické príklady
Kliknutím prevezmete databázu myflix, ktorá sa používa ako praktický príklad.
Môžete sa naučiť importovať súbor .sql do MySQL WorkBench
Príklady sú uvedené v nasledujúcich dvoch tabuľkách
Tabuľka 1: tabuľka členov
členské číslo | full_names | rod | dátum narodenia | fyzická adresa | Poštová adresa | kontct_ cislo | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Žena | 21-07-1980 | Pozemok prvej ulice č. 4 | Súkromná taška | 0759 253 542 | Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript. |
2 | Janet Smith Jones | Žena | 23-06-1980 | Melrose 123 | NULOVÝ | NULOVÝ | Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript. |
3 | Robert Phil | Muž | 12.7.1989 | 3. ulica 34 | NULOVÝ | 12345 | Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript. |
4 | Gloria Williams | Žena | 14-02-1984 | 2. ulica 23 | NULOVÝ | NULOVÝ | NULOVÝ |
Tabuľka 2: tabuľka filmov
film_id | titul | riaditeľ | rok_vydané | id_kategórie |
---|---|---|---|---|
1 | Piráti z Karibiku 4 | Rob Marshall | 2011 | 1 |
2 | Zabúda sa na Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X Men | NULOVÝ | 2008 | NULOVÝ |
4 | Kódové meno Čierne | Edgar Jimz | 2010 | NULOVÝ |
5 | Daddy's Little Girls | NULOVÝ | 2007 | 8 |
6 | Anjeli a démoni | NULOVÝ | 2007 | 6 |
7 | Davinciho kódex | NULOVÝ | 2007 | 6 |
9 | Medovníky | John Schultz | 2005 | 8 |
16 | 67% vinný | NULOVÝ | 2012 | NULOVÝ |
Získava sa zoznam členov
Predpokladajme, že chceme získať zoznam všetkých registrovaných členov knižnice z našej databázy. Použili by sme na to skript uvedený nižšie.
SELECT * FROM `members`;
Vykonanie vyššie uvedeného skriptu v pracovnej ploche MySQL prinesie nasledujúce výsledky.
členské číslo | full_names | rod | dátum narodenia | fyzická adresa | Poštová adresa | kontct_ cislo | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Žena | 21-07-1980 | Pozemok prvej ulice č. 4 | Súkromná taška | 0759 253 542 | Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript. |
2 | Janet Smith Jones | Žena | 23-06-1980 | Melrose 123 | NULOVÝ | NULOVÝ | Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript. |
3 | Robert Phil | Muž | 12.7.1989 | 3. ulica 34 | NULOVÝ | 12345 | Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript. |
4 | Gloria Williams | Žena | 14-02-1984 | 2. ulica 23 | NULOVÝ | NULOVÝ | NULOVÝ |
Náš dopyt vyššie vrátil všetky riadky a stĺpce z tabuľky členov.
Povedzme, že nás zaujíma iba získanie iba polí s úplným menom, pohlavím, fyzickou adresou a e-mailom. Nasledujúci skript by nám pomohol dosiahnuť to.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Vykonanie vyššie uvedeného skriptu v pracovnej ploche MySQL prinesie nasledujúce výsledky.
full_names | rod | fyzická adresa | |
---|---|---|---|
Janet Jones | Žena | Pozemok prvej ulice č. 4 | Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript. |
Janet Smith Jones | Žena | Melrose 123 | Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript. |
Robert Phil | Muž | 3. ulica 34 | Táto e-mailová adresa je chránená pred spamovacími robotmi. Ak ju chcete vidieť, musíte mať povolený JavaScript. |
Gloria Williams | Žena | 2. ulica 23 | NULOVÝ |
Získava sa zoznam filmov
Pamätajte, že v našej diskusii vyššie sme spomenuli výrazy použité v príkazoch SELECT. Povedzme, že chceme získať zoznam filmov z našej databázy. Chceme mať názov filmu a meno režiséra v jednom poli. Meno režiséra by malo byť uvedené v zátvorkách. Chceme tiež získať rok, v ktorom bol film uvedený na trh. K tomu nám pomáha nasledujúci skript.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
TU
- Používa sa funkcia Concat () MySQL na spojenie hodnôt stĺpcov.
- Riadok „Concat (` title`, '(', `director`, ')') získa názov, pridá úvodnú zátvorku, za ktorou nasleduje meno režiséra, a potom záverečnú zátvorku.
Časti reťazca sú oddelené čiarkami vo funkcii Concat ().
Vykonaním vyššie uvedeného skriptu v pracovnom stole MySQL sa vytvorí nasledujúca sada výsledkov.
Concat (`title`, '(',` director`, ')') | rok_vydané |
---|---|
Piráti z Karibiku 4 (Rob Marshall) | 2011 |
Zabúdanie na Sarah Marshal (Nicholas Stoller) | 2008 |
NULOVÝ | 2008 |
Krycie meno Black (Edgar Jimz) | 2010 |
NULOVÝ | 2007 |
NULOVÝ | 2007 |
NULOVÝ | 2007 |
Medovníky (John Schultz) | 2005 |
NULOVÝ | 2012 |
Názvy aliasových polí
Vyššie uvedený príklad vrátil kód zreťazenia ako názov poľa pre naše výsledky. Predpokladajme, že chceme v našej výsledkovej sade použiť popisnejší názov poľa. Na to by sme použili alias názvu stĺpca. Nasleduje základná syntax názvu aliasu stĺpca
SELECT `column_name|value|expression` [AS] `alias_name`;
TU
- "SELECT" názov_sloupca | hodnota | výraz "" je bežný príkaz SELECT, ktorým môže byť názov, hodnota alebo výraz stĺpca.
- „[AS]“ je voliteľné kľúčové slovo pred aliasovým menom, ktoré označuje výraz, hodnotu alebo názov poľa, bude vrátené ako.
- „alias_name`“ je alias, ktorý chceme vrátiť v našej výsledkovej sade ako názov poľa.
Vyššie uvedený dopyt so zmysluplnejším názvom stĺpca
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Získame nasledujúci výsledok
Concat | rok_vydané |
---|---|
Piráti z Karibiku 4 (Rob Marshall) | 2011 |
Zabúdanie na Sarah Marshal (Nicholas Stoller) | 2008 |
NULOVÝ | 2008 |
Krycie meno Black (Edgar Jimz) | 2010 |
NULOVÝ | 2007 |
NULOVÝ | 2007 |
NULOVÝ | 2007 |
Medovníky (John Schultz) | 2005 |
NULOVÝ | 2012 |
Zobrazuje sa zoznam členov s rokom narodenia
Predpokladajme, že chceme získať zoznam všetkých členov, ktorý zobrazuje členské číslo, celé mená a rok narodenia, pomocou funkcie LEFT string môžeme extrahovať rok narodenia z poľa dátumu narodenia. K tomu nám pomáha nižšie uvedený skript.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
TU
- "LEFT (` date_of_birth`, 4) " funkcie LEFT reťazec prijíma dátum narodenia ako parameter a vráti iba 4 znaky z ľavej strany.
- „AS` year_of_birth` “ je alias názvu stĺpca, ktorý sa vráti v našich výsledkoch. Upozorňujeme, že kľúčové slovo AS je voliteľné , môžete ho vynechať a dopyt bude fungovať.
Vykonanie vyššie uvedeného dotazu v pracovnom stole MySQL proti myflixdb nám poskytne výsledky uvedené nižšie.
členské číslo | full_names | rok narodenia |
---|---|---|
1 | Janet Jones | 1980 |
2 | Janet Smith Jones | 1980 |
3 | Robert Phil | 1989 |
4 | Gloria Williams | 1984 |
SQL pomocou MySQL Workbench
Teraz použijeme pracovný stôl MySQL na vygenerovanie skriptu, ktorý zobrazí všetky názvy polí z našej tabuľky kategórií.
1. Kliknite pravým tlačidlom myši na tabuľku kategórií. Kliknite na „Vybrať riadky - obmedziť 1 000“
2. Pracovný stôl MySQL automaticky vytvorí dotaz SQL a vloží ho do editora.
3. Zobrazia sa výsledky dotazu
Všimnite si, že sme príkaz SELECT nepísali sami. Pracovný stôl MySQL to pre nás vygeneroval.
Prečo používať príkaz SELECT SQL, keď máme MySQL Workbench?
Možno si teraz myslíte, prečo sa naučiť príkaz SQL SELECT vyhľadávať údaje z databázy, keď na získanie rovnakých výsledkov bez znalosti jazyka SQL môžete jednoducho použiť nástroj ako napríklad pracovný stôl MySQL. To je samozrejme možné, ale naučiť sa používať príkaz SELECT vám dáva väčšiu flexibilitu a kontrolu nad vašimi príkazmi SQL SELECT .
Pracovný stôl MySQL patrí do kategórie nástrojov QBE „ Dotaz na príklad “. Má pomôcť generovať príkazy SQL rýchlejšie, aby sa zvýšila produktivita používateľov.
Naučenie sa príkazu SQL SELECT vám umožní vytvárať zložité dotazy, ktoré sa nedajú ľahko generovať pomocou obslužných programov Query by Example, ako napríklad pracovný stôl MySQL.
Pre zvýšenie produktivity môžete vygenerovať kód pomocou pracovnej plochy MySQL a potom ho prispôsobiť tak, aby vyhovoval vašim požiadavkám . To sa môže stať, iba ak pochopíte, ako fungujú príkazy SQL!
Zhrnutie
- Kľúčové slovo SQL SELECT sa používa na dopytovanie údajov z databázy a je to najbežnejšie používaný príkaz.
- Najjednoduchšia forma má syntax „SELECT * FROM tableName;“
- Vo výroku select je možné použiť aj výrazy. Príklad „VYBERTE množstvo + cena Z predaja“
- Príkaz SQL SELECT môže mať aj ďalšie voliteľné parametre, ako napríklad WHERE, GROUP BY, HAVING, ORDER BY. Bude sa o nich diskutovať neskôr.
- Pracovný stôl MySQL môže pomôcť pri vývoji príkazov SQL, ich vykonávaní a vytváraní výstupných výsledkov v rovnakom okne.