Operace nad daty z dotazu
Je-li dotaz uložen v databázi pod jménem (v SQL jako VIEW), dá se používat v manipulačních příkazech jazyka SQL na těch místech, kde může být tabulka. V uložené proceduře lze dotaz použít také v deklaraci kurzoru nebo v příkazu FOR.
Existuje však řada omezení na použití dotazu v operacích vkládajících a rušících záznamy a pro přepis dat. Níže uvedená tabulka ukazuje, jak konstrukce použité v dotazu ovlivňují možnosti práce s daty v dotazu:
| Konstrukce |
INSERT |
DELETE |
UPDATE |
| Operace JOIN |
Nelze |
Nelze |
Lze, pokud to umožňuje alespoň jeden operand |
| Klauzule GROUP BY nebo agregační funkce |
Nelze |
Nelze |
Nelze |
| Operace UNION |
Nelze |
Nelze |
Nelze |
| Operace INTERSECT |
Nelze |
Dle prvního operandu |
Dle prvního operandu |
| Operace EXCEPT |
Nelze |
Dle prvního operandu |
Dle prvního operandu |
| Klauzule FOR READ ONLY |
Nelze |
Nelze |
Nelze |
| Klauzule INSENSITIVE |
Nelze |
Nelze |
Nelze |
| Proměnné v klauzulích SELECT nebo ORDER BY |
Nelze |
Nelze |
Nelze |
Uvedení více než jedné tabulky v klauzuli FROM je operací JOIN. Jiné operace a také operace použité v subdotazech nemají na práci s daty vliv.
Pokud struktura dotazu umožňuje přepis dat (UPDATE), neznamená to ještě, že bude možno přepsat data ve všech sloupcích. Nelze přepisovat například data ve sloupcích zadaných výrazem nebo pocházejících z needitovatelných operandů v operaci JOIN.