MySQL: Manipulujeme s daty příkazem Select



Příkaz Select je bezpochyby nejpoužívanějším příkazem, který využijete při manipulaci s daty v databázi. Jeho prostřednictvím lze projít tabulku či více tabulek a získat z nich data, která odpovídají zadaným kritériím a jsou seřazena v žádoucím pořadí.

Příkaz Select lze skutečně používat širokou škálou způsobů.
Příkaz Select lze skutečně používat širokou škálou způsobů.
Jak už jsme psali v předchozích článcích o SQL, budeme vycházet ze syntaxe příkazů tak, jak jsou implementovány v oblíbeném databázovém systému MySQL; nicméně většina zde uvedených informací platí pro jazyk SQL obecně, nezávisle na implementaci.

A ještě ke způsobu zápisu syntaxe: Příkazy v hranatých závorkách jsou volitelné, použít je tedy lze, ale nejsou nezbytné.

SQL příkaz Select

Základní syntaxe příkazu Select vypadá takto: SELECT [modifikátory] sloupce/výrazy [FROM tabulky] [WHERE podmínky] [GROUP BY {sloupce/výrazy} [modifikátory] [ORDER BY {sloupce/výrazy} [ASC | DESC] [LIMIT {offset}] [modifikátory]. Slovem modifikátory zde drze označujeme všechny doplňkové volby, které jsme zde nevypsali jako ty základní – nejčastěji používané.

Příkladem použití v praxi pak může být třeba SELECT id, jmeno FROM zamestnanci WHERE id>5000 AND id<10000 ORDER BY jmeno DESC. Výsledkem dotazu budou záznamy obsahující sloupce id a jmeno těch zástupců z tabulky zamestnanci, jejichž id je větší než 5000 a menší než 10 000, a to seřazení podle jména sestupně.

Pokud mají být výsledkem všechny sloupce dané tabulky, lze za klíčovým slovem Select zadat divokou kartu *. Mají-li být data vybrána z více tabulek, lze to udělat například takto: SELECT * FROM tabulka1 INNER JOIN tabulka2…, SELECT * FROM tab1 LEFT JOIN (tab2, tab3, tab4)…, kde klíčové slovo Join – v různých variantách – zajišťuje různé způsoby „propojení“ tabulek, z nichž jsou poptávány výsledky.

Pro začátečníka jednodušším způsobem dotazu do více tabulek může být výraz: SELECT tab1.jmeno, tab2.mzda FROM zamestnanci AS tab1, mzdy AS tab2 WHERE tab1.id = tab2.id. Získány tak budou jméno a mzda zaměstnanců z tabulek zamestnanci (alias tab1) a mzdy (alias tab2) a to vždy tak, že se id v jedné tabulce musí shodovat s id v druhé tabulce.

Složitější formulace příkazu Select

Jak už je vidět z obecného zápisu SQL příkazu Select, lze jej modifikovat řadou různých způsobů a kromě názvů sloupců využít na mnoha místech i různé výrazy. Příkladem může být třeba SELECT AVG(mzda), tab1.* FROM tab1, kde výsledkem je průměrná mzda z tab1, nebo třeba SELECT CONCAT(jmeno,' ',prijmeni) cele_jmeno FROM tab1 ORDER BY tab1, kde výsledkem je „seznam“ obsahující nově vytvořený (virtuální) atribut/sloupec cele_jmeno, jehož obsahem jsou spojené sloupce jmeno a prijmeni (oddělené mezerou) z tabulky tab1.

Pár drobností na závěr

Pokud potřebujete vybírat více sloupců, řadit podle více sloupců apod., stačí je oddělit čárkou, například SELECT skola, region, kapacita FROM stredni_skoly ORDER BY region, kapacita. Pokud potřebujete zadat podmínku na textový sloupec, místo běžných aritmetických operátorů použijte LIKE, např. jmeno LIKE ‘Novak‘, takže hledáni budou pouze lidé se jménem Novak, případně LIKE ‘%Nov%‘, kdy hledáni budou pouze lidé, jejichž jméno obsahuje řetězec Nov.

Počet způsobů použití příkazu Select je ovšem daleko širší, lze využít širokou škálu výrazů třeba pro získání minima (MIN) nebo maxima (MAX), hledat hodnoty mezi zadanými hranicemi (BETWEEN), seskupovat výsledky podle hodnot (GROUP BY s možnou dodatečnou omezující podmínkou HAVING) apod. Berte tedy tento příspěvek skutečně jen jako stručný úvod do použití příkazu Select.


(září 2013 | redakce2)


Předcházející článek: <<< MySQL ve víru změn: Alter, Drop, Rename, Truncate <<<
Následující článek: >>> MySQL: Manipulujeme s daty s použitím příkazů Insert, Update, Merge, Delete >>>

Tento článek je součástí speciálu:

Jazyk SQL v kostce: Od Select po Commit


Příkazy jazyka SQL lze rozdělit do několika skupin, podle toho, co je jejich účelem.

Jazyk SQL (z anglického Structured Query Language) asi není třeba dlouze představovat: Řada uživatelů počítačů jej zná z desktopových databází a snad všichni, kdo se někdy zabývali tvorbou webu, jej pak používají pro propojení skriptovacího jazyka stránek – nejčastěji PHP – s backendovou databází – nejčastěji MySQL. Pojďme se tedy společně podívat jak na základy, tak na některá zákoutí SQL.



Komentáře, názory a rady

Zatím sem nikdo nevložil žádný komentář. Buďte první...

>>> Číst a vkládat komentáře <<<

Tip - Konference: Cloud computing v praxi - 23.3.2017!


Otázky a odpovědi z IT: Diskusní portál Bizio.cz
Pozoruhodné IT produkty pro rok 2017
Věříme, že v tomto přehledu pozoruhodných produktů najdete ty, které vám pomohou ve vaší práci v IT.




Anketa


©2011-2017 BusinessIT.cz, ISSN 1805-0522 | Názvy použité v textech mohou být ochrannými známkami příslušných vlastníků.
Provozovatel: Bispiral, s.r.o., kontakt: BusinessIT(at)Bispiral.com | Inzerce: Best Online Media, s.r.o., zuzana@online-media.cz
Používáme účetní program Money S3
O vydavateli | Pravidla webu BusinessIT.cz a ochrana soukromí | pg(1525)