Tato část je zaměřena na tvorbu základních SELECT dotazů. Dozvíte se, jak vybírat data z tabulek, jak je filtrovat, řadit a omezovat počty řádků.

SQL2 - Základní dotazy

Tato část je zaměřena na tvorbu základních SELECT dotazů. Dozvíte se, jak vybírat data z tabulek, jak je filtrovat, řadit a omezovat počty řádků.

Základní SELECT

Zjednodušená syntaxe příkazu SELECT je následující

SELECT
<seznam sloupců>, <agregace>
FROM
<zdrojové tabulky>
WHERE
<podmínky>
GROUP BY
<seznam sloupců>
ORDER BY
<seznam sloupců>

Tato zjednodušená syntaxe neobsahuje všechny povolené části, ale jen ty nejčastěji využívané. Přehled všech možností příkazu SELECT naleznete v dokumentaci. Všimněte si, že pořadí jednotlivých částí příkazu SELECT odpovídá větné stavbě anglické věty. Níže jsou rozebrány jednotlivé části tohoto příkazu.

SELECT

Tato část obsahuje seznamu sloupců, které má dotaz vrátit. Kromě samotných názvů sloupců zde mohou být i agregační funkce, které budou rozebrány v následující části seriálu. Znak * v této části značí výběr všech sloupců.

FROM

V této části jsou uvedeny všechny tabulky, z nichž se data načítají. Prozatím si vystačíme s jednou tabulkou. Možnosti načítání dat z více tabulek jsou popsány v částech věnovaných vnitřnímu a vnějšímu spojení.

WHERE

Zde jsou uvedeny podmínky, které musí řádek splňovat, aby byl zahrnut ve výstupu. Řádky nesplňující tyto podmínky jsou zahozeny. Podmínky lze kombinovat pomocí běžných logických spojek (AND, OR…).

GROUP BY

Slouží k rozdělení vybraných řádků do skupin. Seskupování je podrobněji probráno v následující části.

ORDER BY

Tato část určuje pořadí řazení řádků ve výstupu. Pokud je zde uvedeno více sloupců, provádí se řazení postupně podle prvního, druhého, třetího atd.

Komentáře

Do SQL kódu je možné zapisovat i komentáře. Existují dvě možnosti - jednořádkové a víceřádkové. Jednořádkové komentáře jsou uvozeny dvěma pomlčkami, přičemž všechno za těmito pomlčkami až do konce řádku se považuje za komentář. Víceřádkové komentáře se uzavírají mezi /* a */. Okomentovaný kód tedy může vypadat následovně.

/*
* Dotaz vypise vsechny
* vyrobce z tabluky
* Manufacturer
*/
SELECT
* -- Vyber vsechny sloupce
FROM
Manufacturer
Filtrování dat

Data lze filtrovat v části WHERE. Zde lze zapisovat podmínky obsahující hodnoty v jednotlivých sloupcích daného řádku. Výrazy pro filtrování se tedy liší podle typu sloupce.

Číselné sloupce

U číselných sloupců lze k tvorbě podmínek využívat operátory porovnání

> větší než

< menší než

= rovná se

!= nerovná se

<> nerovná se

Kromě toho lze používat i další operátory (IN, BETWEEN atd.), se kterými se seznámíte v této a následující části u konkrétních dotazů.

Datum a čas

U sloupců typu datum a čas se používají také operátory porovnání, ale konstanty je nutné psát do apostrofů ve formátu odpovídajícímu nastavení lokálního prostředí databáze nebo ve formátu ISO8601, tedy 'yyyy-mm-ddThh:mm:ss'

Řetězce

U řetězců se konstanty rovněž zapisují do apostrofů. Kromě běžného porovnání existuje u řetězců také operátor LIKE, který umožňuje porovnání na shodu s konkrétním vzorem. V těchto vzorech lze využívat zástupné znaky (wildcards)

_ zastupuje libovolný znak

% zastupuje libovolný řetězec

Příklady užití těchto zástupných znaků najdete ve videu.

V prezentaci SQL2 - Samostatná práce naleznete příklady na procvičení znalostí získaných v této části. Na každém snímku je vždy zadání a po posunutí se zobrazí odpověď. Než se na odpověď podíváte, zkuste nejdřív přijít na řešení samostatně.

Zaujal Tě tento online kurz?

Přihlásit k newsletteru

Projekt online vzdělávání byl realizován v rámci Stipendia Czechitas v projektu: „Ženy do IT“ (reg.č. CZ.03.1.51/0.0/0.0/16_061/0003268), který je financován z prostředků Evropského sociálního fondu prostřednictvím Operačního programu Zaměstnanost.