MySQL Příkaz SELECT s příklady
V čem je SELECT dotaz MySQL?
SELECT QUERY se používá k načtení dat z MySQL databáze. Databáze ukládají data pro pozdější načtení. Účelem MySQL Select je vrátit z databázových tabulek jeden nebo více řádků, které odpovídají daným kritériím. Výběrový dotaz lze použít ve skriptovacím jazyce, jako je PHP, Ruby, nebo jej můžete spustit pomocí příkazového řádku.
Syntaxe příkazu SQL SELECT
Je to nejčastěji používaný SQL příkaz a má následující obecnou syntaxi
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)
ZDE
- SELECT je klíčové slovo SQL, které dává databázi vědět, že chcete načíst data.
- [ODLIŠNÁ | VŠECHNO] jsou volitelná klíčová slova, která lze použít k doladění výsledků vrácených příkazem SQL SELECT. Pokud není nic zadáno, předpokládá se ALL jako výchozí.
- {*| [fieldExpression [AS newName]} musí být zadána alespoň jedna část, „*“ vybrala všechna pole ze zadaného názvu tabulky, fieldExpression provádí některé výpočty se zadanými poli, jako je sčítání čísel nebo skládání dvou řetězcových polí do jednoho.
- Z tableName je povinné a musí obsahovat alespoň jednu tabulku, více tabulek musí být odděleno čárkami nebo spojeno pomocí klíčového slova JOIN.
- KDE podmínka je volitelná, lze ji použít k zadání kritérií v sadě výsledků vrácené z dotazu.
- SKUPINA VYTVOŘENÁ se používá k sestavení záznamů, které mají stejné hodnoty polí.
- HAVING podmínka se používá k určení kritérií při práci s klíčovým slovem GROUP BY.
- SEŘADIT PODLE se používá k určení pořadí řazení sady výsledků.
*
Symbol hvězdičky se používá k označení všech sloupců v tabulce. Příklad jednoduchého příkazu SELECT vypadá jako níže uvedený.
SELECT * FROM `members`;
Výše uvedený příkaz vybere všechna pole z tabulky členů. Středník je příkaz zakončit. Není to povinné, ale považuje se to za dobrý postup ukončit takto svá prohlášení.
Praktické příklady
Klikněte pro stažení myflix DB použitý pro praktické příklady.
Můžete se naučit importovat soubor .sql do MySQL pracovní stůl
Příklady jsou uvedeny v následujících dvou tabulkách
Tabulka 1: Členové tabulka
| členské číslo | celá_jména | rod | datum narození | fyzická adresa | poštovní_ adresa | číslo_kontaktu | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jonesová | Žena | 21-07-1980 | První ulice pozemek č. 4 | Soukromá taška | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jonesová | Žena | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Muž | 12-07-1989 | 3. ulice 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williamsová | Žena | 14-02-1984 | 2. ulice 23 | NULL | NULL | NULL |
Tabulka 2: filmy tabulka
| movie_id | titul | ředitel | rok_vydáno | category_id |
|---|---|---|---|---|
| 1 | Piráti z Karibiku 4 | Rob Marshall | 2011 | 1 |
| 2 | Zapomínání na Sarah Marshal | Nicholas Stoller | 2008 | 2 |
| 3 | X-Men | NULL | 2008 | NULL |
| 4 | Code Jméno Černá | Edgar Jimz | 2010 | NULL |
| 5 | Tatínkovy holčičky | NULL | 2007 | 8 |
| 6 | andělé a démoni | NULL | 2007 | 6 |
| 7 | Davinci Code | NULL | 2007 | 6 |
| 9 | Honey mooneRS | John Schultz | 2005 | 8 |
| 16 | 67% vinen | NULL | 2012 | NULL |
Získání seznamu členů
Předpokládejme, že chceme získat seznam všech registrovaných členů knihovny z naší databáze, k tomu bychom použili níže uvedený skript.
SELECT * FROM `members`;
Spuštění výše uvedeného skriptu v MySQL workbench produkuje následující výsledky.
| členské číslo | celá_jména | rod | datum narození | fyzická adresa | poštovní_ adresa | číslo_kontaktu | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jonesová | Žena | 21-07-1980 | První ulice pozemek č. 4 | Soukromá taška | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jonesová | Žena | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Muž | 12-07-1989 | 3. ulice 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williamsová | Žena | 14-02-1984 | 2. ulice 23 | NULL | NULL | NULL |
Náš výše uvedený dotaz vrátil všechny řádky a sloupce z tabulky členů.
Řekněme, že nás zajímají pouze pole plná_jména, pohlaví, fyzická_adresa a e-mail. K tomu nám pomůže následující skript.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Spuštění výše uvedeného skriptu v MySQL workbench produkuje následující výsledky.
| celá_jména | rod | fyzická adresa | |
|---|---|---|---|
| Janet Jonesová | Žena | První ulice pozemek č. 4 | janetjones@yagoo.cm |
| Janet Smith Jonesová | Žena | Melrose 123 | jj@fstreet.com |
| Robert Phil | Muž | 3. ulice 34 | rm@tstreet.com |
| Gloria Williamsová | Žena | 2. ulice 23 | NULL |
Získání seznamu filmů
Pamatujte, že v naší diskusi výše jsme zmínili výrazy použité v příkazech SELECT. Řekněme, že chceme získat seznam filmů z naší databáze. Chceme mít název filmu a jméno režiséra v jednom poli. Jméno filmového režiséra by mělo být v závorkách. Chceme také získat rok, kdy byl film propuštěn. K tomu nám pomáhá následující skript.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
ZDE
- Concat () MySQL používá se funkce spojení hodnot sloupců dohromady.
- Řádek „Concat (`title`, ' (', `director`, ')') získá název, přidá úvodní závorku následovanou jménem režiséra a poté přidá závorku uzavírající.
Části řetězců jsou ve funkci Concat () odděleny čárkami.
Spuštění výše uvedeného skriptu v MySQL workbench vytvoří následující sadu výsledků.
| Concat(`title`, ' (', `director`, ')') | rok_vydáno |
|---|---|
| Piráti z Karibiku 4 (Rob Marshall) | 2011 |
| Zapomenutí na Sarah Marshal (Nicholas Stoller) | 2008 |
| NULL | 2008 |
| Code Jméno Black (Edgar Jimz) | 2010 |
| NULL | 2007 |
| NULL | 2007 |
| NULL | 2007 |
| Honey mooners (John Schultz) | 2005 |
| NULL | 2012 |
Názvy polí aliasů
Výše uvedený příklad vrátil kód Concatenation jako název pole pro naše výsledky. Předpokládejme, že chceme v sadě výsledků použít popisnější název pole. K tomu bychom použili název alias sloupce. Následuje základní syntaxe názvu aliasu sloupce
SELECT `column_name|value|expression` [AS] `alias_name`;
ZDE
- "SELECT ` název_sloupce|hodnota|výraz `" je běžný příkaz SELECT, kterým může být název sloupce, hodnota nebo výraz.
- "[TAK JAKO]" je nepovinné klíčové slovo před názvem aliasu, které označuje výraz, hodnotu nebo název pole bude vrácen jako.
- "`alias_name`" je název aliasu, který chceme vrátit v naší sadě výsledků jako název pole.
Výše uvedený dotaz se smysluplnějším názvem sloupce
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Dostaneme následující výsledek
| Concat | rok_vydáno |
|---|---|
| Piráti z Karibiku 4 (Rob Marshall) | 2011 |
| Zapomenutí na Sarah Marshal (Nicholas Stoller) | 2008 |
| NULL | 2008 |
| Code Jméno Black (Edgar Jimz) | 2010 |
| NULL | 2007 |
| NULL | 2007 |
| NULL | 2007 |
| Honey mooners (John Schultz) | 2005 |
| NULL | 2012 |
Získání seznamu členů s rokem narození
Předpokládejme, že chceme získat seznam všech členů s uvedením členského čísla, celého jména a roku narození. Můžeme k tomu použít funkci LEFT.tracrok narození z pole s datem narození. S tím nám pomůže níže uvedený skript.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
ZDE
- "LEFT(`datum_narozeni`,4)" ο Funkce LEFT řetězce akceptuje datum narození jako parametr a vrací pouze 4 znaky zleva.
- "JAKO "rok_narozeni" je název aliasu sloupce které se nám vrátí do výsledků. Všimněte si Klíčové slovo AS je nepovinné, můžete jej vynechat a dotaz bude stále fungovat.
Provedení výše uvedeného dotazu v MySQL workbench proti myflixdb nám poskytuje výsledky uvedené níže.
| členské číslo | celá_jména | rok narození |
|---|---|---|
| 1 | Janet Jonesová | 1980 |
| 2 | Janet Smith Jonesová | 1980 |
| 3 | Robert Phil | 1989 |
| 4 | Gloria Williamsová | 1984 |
pomocí SQL MySQL Workbench
Nyní budeme používat MySQL workbench pro vygenerování skriptu, který zobrazí všechny názvy polí z naší tabulky kategorií.
1. Klepněte pravým tlačítkem myši na tabulku kategorií. Klikněte na „Vybrat řádky – limit 1000“
2. MySQL workbench automaticky vytvoří SQL dotaz a vloží jej do editoru.
3. Zobrazí se výsledky dotazu
Všimněte si, že příkaz SELECT jsme nenapsali sami. MySQL vygeneroval nám to workbench.
Proč používat příkaz SELECT SQL, když máme MySQL Pracovní stůl?
Možná si teď říkáte, proč se učit příkaz SQL SELECT dotazovat data z databáze, když můžete jednoduše použít nástroj, jako je např. MySQL workbench k získání stejných výsledků bez znalosti jazyka SQL. To je samozřejmě možné, ale naučit se používat příkaz SELECT vám dává víc flexibilita a řízení nad tvým SQL příkazy SELECT.
MySQL pracovní stůl spadá do kategorie „Dotaz podle příkladu“Nástroje QBE. Je určen k rychlejšímu generování příkazů SQL pro zvýšení produktivity uživatelů.
Naučit se příkaz SQL SELECT vám umožní vytvářet složité dotazy které nelze snadno vygenerovat pomocí nástrojů Query by Example, jako je např MySQL pracovní stůl.
Chcete-li zvýšit produktivitu, můžete vygenerujte kód pomocí MySQL ponk pak přizpůsobit to, aby splnit vaše požadavky. To se může stát pouze tehdy, pokud rozumíte tomu, jak příkazy SQL fungují!
Shrnutí
- Klíčové slovo SQL SELECT se používá k dotazování na data z databáze a je to nejčastěji používaný příkaz.
- Nejjednodušší forma má syntaxi „SELECT * FROM název_tabulky;“
- Výrazy lze také použít v příkazu select. Příklad „VYBRAT množství + cena Z Prodeje“
- Příkaz SQL SELECT může mít také další volitelné parametry, jako je WHERE, GROUP BY, HAVING, ORDER BY. Budou projednány později.
- MySQL workbench může pomoci vyvinout příkazy SQL, provést je a vytvořit výstupní výsledek ve stejném okně.



