Promotic
WikipediaLinkedInYoutubeTwitterFacebook

SELECT - příkaz jazyka DB_MSSQL

Popis:
Dotaz na data. Výsledek je vždy v tabulkové podobě.
Syntaxe:

SELECT [ TOP lines | TOP percent PERCENT ] select_list

[ INTO new_table ]

FROM table_source

[ WHERE search_condition ]

[ ORDER BY order_expression [ ASC | DESC ] ]

 
lines Omezení počtu získaných řádků.
percent Omezení počtu získaných řádků vyjádřeno procenty (0-100).
select_list Seznam sloupců výsledků dotazu (výrazy oddělené čárkou) nebo znak '*' znamenající všechny sloupce.
new_table Název nové tabulky, vzniklé jako výsledek dotazu.
table_source Seznam tabulek použitých v dotazu (tabulky oddělené čárkou).
search_condition Logický výraz určující, které řádky zdrojových tabulek zahrnout do výsledku dotazu (neuvede-li se WHERE, znamená to všechny věty).
order_expression Určuje sloupec, podle kterého bude výsledek dotazu setříděn.
ASC Třídění bude vzestupné (implicitní).
DESC Třídění bude sestupné.
Poznámka:
Syntaxe příkazu SELECT je ve skutečnosti ještě mnohem komplexnější a obsahuje například klauzule GROUP BY a HAVING, umožňující provádět skupinové operace (sumace, průměry, počty) nad skupinami vět.
Viz také:
Příklad1:
Získání všech sloupců pro všechy věty z tabulky data.
SELECT * FROM data
Příklad2:
Získání všech sloupců pro prvních 10 vět z tabulky data (tříděno podle času).
SELECT TOP 10 * FROM data ORDER BY time
Příklad3:
Získání všech sloupců pro věty splňující zadanou podmínku (čas je větší než 2. července 2003 10:02:00) z tabulky data, výsledek je setříděn vzestupně podle sloupce time. Oba zápisy jsou ekvivalentní (čas s přesností až na ms lze uvést u obou formátů).
SELECT * FROM data WHERE time>'2003-07-02 10:02:00' ORDER BY time
SELECT * FROM data WHERE time>'07/02/2003 10:02:00.000' ORDER BY time
Příklad4:
Získání vybraných sloupců a pro věty splňující zadanou podminku (hodnota 'value' je v rozsahu od 20 do 80) z tabulky data, výsledek je setříděn vzestupně podle sloupce time. Oba zápisy jsou ekvivalentní.
SELECT time, value FROM data WHERE value > 20 AND value < 80 ORDER BY time
SELECT time, value FROM data WHERE value BETWEEN 20 AND 80 ORDER BY time
Příklad5:
Získání počtu vět, součtu hodnot a průměrnou hodnotu pro věty splňující zadanou podmínku z tabulky data, kde vypočtené sloupce jsou pojmenovány zadanými názvy.
SELECT COUNT(*) AS Count, SUM(value) AS Suma, AVG(value) AS Average FROM data WHERE value BETWEEN 20 AND 80
Příklad6:
Získání sloupce time a vypočteného sloupce (hodnota 'value' zaokrouhlená na celé číslo) všech vět z tabulky data.
SELECT time, ROUND(value,0) AS Round_0 FROM data
Příklad7:
Získání všech sloupců pro žádnou větu (WHERE 1=0 je vždy neplatné) z tabulky data a uložení výsledku do nové tabulky data_copy. Tzn., že se zkopíruje pouze struktura tabulky. Klauzuli WHERE lze určit, zda a které věty do nové tabulky zkopírovat.
SELECT * INTO data_copy FROM data WHERE 1=0
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice