SQL - select
Príkaz SELECT sa používa pre výber dát z databázy. Výsledok je uložený v tabuľke výsledkov.
Obsah
Syntax príkazu SELECT
Základná syntax (zjednodušená) je
SELECT názvy_stĺpcov_tabuľky FROM názov_tabuľky
Kompletná syntax je nasledujúca:
SELECT
[ALL | DISTINCT | DISTINCTROW ]
select_expr, ...
[FROM table_references
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position} [ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}] [PROCEDURE procedure_name(argument_list)]
[INTO OUTFILE 'file_name' export_options | INTO DUMPFILE 'file_name' | INTO var_name [, var_name]]
[FOR UPDATE | LOCK IN SHARE MODE]]
Poznámka: Výrazy v hranatých zátvorkách sú nepovinné, hodnoty oddelené čiarou (|) v zložených zátvorkách znamenajú výberj jednoej hodnoty z viacerých.
SELECT výber všetkých údajov
Úloha: vyberte všetky záznamy z tabuľky city.
Riešenie:
SELECT * from city
Výsledok:
Úloha: vyberte všetky záznamy z tabuľkt city. Vo výbere bude len názov mesta a populácia.
Riešenie:
SELECT Name, Population from city
Výsledok:
SELECT obmedzenie výberu
Pre obmedzenie počtu výsledkov sa v príkaze SQL používa kľúčové slovo WHERE. Za kľúčové slovo sa píše logická podmienka. Výsledkom dotazu sú záznamy, ktoré vyhovujú danej logickej podmienke. Syntax je nasledovná:
SELECT názvy_stĺpcov_tabuľky FROM názov_tabuľky WHERE logicka_podmienka
Logická podmienka je výraz, ktorého výsledok môže byť pravda (true) alebo nepravda (false). V logickej podmienke sa používajú relačné operátory:
= | porovnanie |
---|---|
>= | väčší rovný |
> | väčší |
<= | menší rovný |
< | menší |
IS NULL | Test na hodnotu NULL |
IS | Test na logickú hodnotu true/false |
LIKE | Porovnávanie reťazcov |
!=, <> | Operátor nerovnsti |
NOT LIKE | Negácia pri porovnávaní reťazcov |
BETWEEN | Výber hodnoty z daného intervalu |
Úloha: Vyberte všetky mestá, v ktorých je populácia väčšia ako 5 000 000.
Riešenie:
SELECT * FROM city WHERE Population>5000000
Výsledok:
Úloha: Vyber všetky mestá, ktoré majú kód krajiny "SVK"
Riešenie:
SELECT * FROM city WHERE CountryCode like "SVK"
Výsledok:
Úloha: Vyber všetky mestá v ktorých je populácia medzi 1 a 2 miliónmi obyvateľov
Riešenie:
SELECT * FROM city WHERE Population between 1000000 and 2000000
Výsledok:
Úloha: Vyber všetky mestá, ktorých názov začína na "Bra"
Riešenie:
SELECT * FROM city WHERE Name LIKE 'Bra%'
Výsledok:
Poznámka: Znak % (percento) zastupuje ľubovoľný počet znakov.
Úloha: Vyber všetky mestá, ktorých kód krajiny začína na "N" a končí na "L"
Riešenie:
SELECT * FROM city WHERE CountryCode LIKE "N_L"
Výsledok:
Poznámka: Znak _ (podčiarkovník) zastupuje jeden znak.
Spájanie viacerých podmienok
Pre vytváranie komplikovanejších logických podmienok v príkaze SELECT slúžia logické spojky. Existujú dve logické spojky:
- AND
- Výraz x AND y je pravdivý vtedy a len vtedy ak je pravdivý výrok x A ZÁROVEŇ je pravdivý výrok y
- OR
- Výraz x OR y je pravdivý vtedy ak je pravdivý výrok x ALEBO je pravdivý výrok y
Úloha: Vyber všetky mestá vo Veľkej britácii, v ktorých je populácia menšia ako 100tisíc obyvateľov.
Riešenie:
SELECT * FROM city WHERE CountryCode like "GBR" and Population<100000
Výsledok:
Úloha: Vyber všetky mestá zo Slovenska a z Čiech
Riešenie:
SELECT * FROM city WHERE CountryCode like "SVK" or CountryCode like "CZE"
Výsledok:
Úloha: Vyber všetky mestá zo Slovenska a z Čiech, ktoré majú menej ako 100 tisíc obyvateľov
Riešenie:
SELECT * FROM city WHERE (CountryCode like "SVK" or CountryCode like "CZE") and population<100000
Výsledok:
SELECT - usporiadanie výsledku
SELECT - zoskupovanie
SELECT - obmedzenie zoskupovania
Úloha: Riešenie:
Výsledok:
Úloha: Riešenie:
Výsledok: