|
SQL /
CREATE VIEW< ALTER TABLE | SQL postupně | DROP > Pohled neboli VIEW je virtuální tabulka definovaná jako výsledek vyhodnocení dotazu. S pohledy je v mnoha ohledech možno pracovat jako se skutečnými tabulkami: je možno nad nimi formulovat dotazy, za určitých okolností je možno manipulovat s "jejich" daty. Syntaxe: create view <jméno_pohledu> as <poddotaz> [with check option]; Klauzule Pohledy dělíme na aktualizovatelné a ne, podle toho, zda je možno s daty manipulovat jejich prostřednictvím. Hlavní využití pohledů je k jemnému řízení přístupových práv k datům. Dále je eventuálně můžeme využít následně po změnách provedených v návrhu databáze k tomu, aby alespoň některé aplikace nemusely být přizpůsobovány: pod jmény starých tabulek se mohou nacházet nově definované virtuální tabulky. Pohledy můžeme také definovat k tomu, aby vývoj aplikací byl intelektuálně snazší – definujeme lépe pochopitelné objekty. Příklad: Definujme pohled pro osoby, které mají SKYPE. Tímto pohledem umožněme přístup jen k ID, jménu, příjmení, skype loginu a poznámce. Skype login ať je dostupný pod jménem "LOGIN". Zabraňme vymazání skype loginu skrz tento pohled.
Příklad: Vložte novou SKYPE_OSOBU.
Příklad: Pokuste se smazat LOGIN nějaké SKYPE_OSOBY.
Pohled z předchozích příkladů byl aktualizovatelný. Přesné rozlišení, které pohledy jsou aktualizovatelné, a které nikoli, můžete nalézt v referenční příručce jazyka, smysl je ten, aby při pokusu vložit data skrz pohled bylo jasné, do kterých tabulek, do kterých řádků, a do kterých sloupců se mají data zapsat. Například pohled definovaný na základě dotazu vypočítávajícího souhrny není aktualizovatelný. Příklad: Definujte pohled poskytující přehled o tom, kolik je osob ve kterém městě.
Pohledy definované na základě dotazů propojujících více tabulek jsou aktualizovatelné jen výjimečně; pokud taková potřeba nastane, dá se eventuálně využít "instead of" trigger (v systému Oracle). < ALTER TABLE | SQL postupně | DROP > Obsah: |