SELECT

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

SQL příkaz SELECT vrací množinu záznamů z jedné a nebo více tabulek.

Syntaxe

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].

Kategorie:SQL

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top