602SQL-Úplná dokumentace Index  

Dotazy v SQL (SELECT)

Dotazy slouží v SQL k nalezení v databázi nebo vypočtení množiny řádků, které odpovídají zadaným kritériím. Tuto množinu nazýváme odpovědí na dotaz. Pokud každý řádek obsahuje jedinou hodnotu (jediný sloupec), hovoříme o skalárním dotazu.

Nejznámější a nejpoužívanější forma dotazu se zapisuje ve tvaru SELECT...FROM...WHERE... .Tento tvar dotazu je popsán v sekci specifikace dotazu. 602SQL v souladu s SQL 2 umožňuje vytvářet složitější dotazové konstrukce spojováním jednodušších dotazů pomocí operátorů UNION, INTERSECT a EXCEPT. Tyto konstrukce se jmenují dotazové výrazy.

Ve funkci tabulky lze v dotazu použít nejen tabulku nebo odpověď na dotaz uložený v databázi (VIEW), také libovolný dotaz uzavřený v kulatých závorkách (subdotaz) nebo spojení dvou tabulek pomocí některého druhu operace JOIN. Tyto možnosti popisuje sekce zobecněná tabulka.

Dotaz není sám o sobě příkazem, dá se však použít v řadě příkazů, např. INSERT, DECLARE CURSOR, CREATE VIEW. Je třeba rozlišovat mezi dotazem a příkazem SELECT INTO, který má podobnou syntaxi, ale slouží k přečtení jednoho řádku odpovědi na dotaz do proměnných.

Je-li definice dotazu syntakticky špatně, dojde již při překladu ke kompilační chybě. Po úspěšném překladu probíhá optimalizace způsobu vyhodnocení.

Reakce serveru na případ, kdy uživatel nemá oprávnění číst některý sloupec odpovědi, lze nastavit pomocí příznaku kompatibility SQLOPT_RD_PRIVIL_VIOL. Jak se má server zachovat v případě, že v tabulkách, z nichž se konstruují dotazy, existují záznamová práva (a tedy nikoliv pouze globální práva pro sloupce), lze nastavit příznakem kompatibility SQLOPT_GLOBAL_REF_RIGHTS. Více na stránce Kontrola práv při provádění SQL příkazů

Viz

Seznam subsekcí: