Poddotaz

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Poddotaz je takový dotaz na databázi, který je umístěn uvnitř jiného „vnějšího“ dotazu a výsledky z něj se používají v nějaké podmínce v tom vnějším dotazu. Poddotazy podporuje většina etablovaných databázových systémů, MSSQL, MySQL (od verze 4.1), Oracle, Sybase a další.

Poddotaz je nejčastěji příkaz SELECT a poskytuje hodnoty do porovnávací podmínky (klauzuli WHERE) pro nadřazený dotaz (jiné části dotazu jen velmi zřídka). Používá se tam, kde není vhodné nebo možné použít agregační funkce nebo (pro dodržení kompatibility) uložené procedury.

Syntaxe poddotazu, vnořeného dotazu neboli subquery je popsána v originální dokumentaci MySQL. Poměrně podrobné informace v češtině naleznete také na stránkách linuxsoftu, kde je velmi dobře napsaný seriál o MySQL.

Příklad 1:

SELECT * FROM tabulka1 WHERE sloupec1=(SELECT sloupec2 FROM tabulka2 WHERE podmínka);

Příklad 2:

DELETE FROM tabulka1 WHERE sloupec1 IN (SELECT sloupec2 FROM tabulka2 WHERE podmínka);

Příklad 3:

UPDATE tabulka1 SET sloupec1=hodnota1 WHERE EXISTS(SELECT sloupec2 FROM tabulka2 WHERE podmínka);

Související články[editovat | editovat zdroj]