SELECT
Author
Albert FloresSyntaxe
SELECT [ALL | DISTINCT] {[tabulka. | alias. +more | pohled. ]{* | sloupec | sloupec AS alias} | AVG([tabulka. | alias. | pohled. ]) [AS ] | MIN([tabulka. | alias. | pohled. ]) [AS ] | MAX([tabulka. | alias. | pohled. ]) [AS ] | COUNT([tabulka. | alias. | pohled. ]) [AS ] }[,. n].
[INTO jméno_nové_tabulky]
FROM [AS ][,... n]
[[INNER | FULL] JOIN ON | OUTER JOIN ON | CROSS JOIN [AS ] [,... n]]
[WHERE | | | BETWEEN AND | LIKE | IN | ANY | SOME (poddotaz) | EXISTS (poddotaz)]
[GROUP BY [,... n]] [HAVING ] [ORDER BY [,... n] [ASC | DESC]]
[UNION ]
Míra implementace SQL dotazů se liší u každého SŘBD, proto je třeba mít při psaní konkrétních dotazů na zřeteli konkrétní SŘBD, na kterém bude dotaz prováděn. Bližší informace naleznete v referenčních manuálech.
Příklad
SELECT id, zakaznik, cena FROM smlouvy WHERE cena>10000 AND se_slevou=1 ORDER BY cena DESC
Další vlastnosti
DISTINCT
Klíčové slovo DISTINCT (někdy používáno DISTINCTROW) z výpisu odstraní záznamy, které se v dané hodnotě pole opakují. Výsledkem pro daný sloupec bude seznam všech hodnot (vyhovující případné podmínce výpisu); každé zastoupené jen jednou. +more SELECT s DISTINCT vypisuje z logických důvodů většinou jen jedno pole.
Omezení počtu zobrazených řádků
Databázové stroje většinou umožňují pomocí nějakého klíčového slova v SQL omezit počet vybraných řádků na určitou hodnotu.
TOP
Databáze Microsoft Access, MSSQL mají klauzuli TOP, která se vkládá hned za SELECT… SELECT TOP 10 jmeno_skladby FROM zebricek_skladeb ORDER BY poslouchanost DESC;
LIMIT a OFFSET
Databáze MySQL, PostgreSQL mají klauzuli LIMIT, která kromě maximálního počtu zobrazených řádků umožňuje určit i od jakého místa (ofsetu) z výsledných řádků dotazu (pomyslného celkového výběru) má vracení výsledku začít. Například dotaz SELECT jmeno_skladby FROM zebricek_skladeb ORDER BY poslouchanost LIMIT 5,10; by zobrazil záznamy na 5. +more až 15. místě. Je možné použít * LIMIT s jedním parametrem - maximálním počtem vypsaných řádků * LIMIT se dvěma parametry - první je maximální počet vypsaných řádků a druhý pozice, od které má výpis začínat (offset) * LIMIT v kombinaci s klíčovým slovem OFFSET - místo varianty dvou čísel oddělených čárkou SELECT jmeno_skladby FROM zebricek_skladeb ORDER BY poslouchanost LIMIT 10 OFFSET 5;.
SQL_CALC_FOUND_ROWS
Konkrétně MySQL navíc podporuje klíčové slovo SQL_CALC_FOUND_ROWS (není součástí žádného SQL standardu), které se umisťuje za SELECT a způsobí, že databázový stroj si i přes omezení dané klíčovým slovem LIMIT ve výběrovém dotazu uloží celkový počet záznamů splňujících podmínku v klauzuli WHERE (pokud je zadaná) a ten pak může poslat jako výsledek dotazu: SELECT FOUND_ROWS Výhodou je, že pro zjištění celkového počtu řádků nemusí být spouštěn další dotaz.
Externí odkazy
[url=http://dev. mysql. +morecom/doc/refman/5. 0/en/select. html]implementace SELECT v MySQL[/url] * [url=http://www. postgresql. org/docs/8. 1/interactive/queries. html]implementace SELECT v PostgreSQL[/url] * [url=http://msdn2. microsoft. com/en-us/library/ms189499. aspx]implementace SELECT v Microsoft SQL Serveru[/url].