|
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: |