CREATE VIEW

 

Syntax


CREATE [ IF NOT EXISTS / OR REPLACE ] [ SQL SECURITY INVOKER ] VIEW [schéma.]jméno_dotazu [ ( jméno_sloupce {, jméno_sloupce }… ) ]
AS dotazový_výraz

Popis


Príkaz jazyka SQL
Príkaz CREATE VIEW vytvorí pevný dopyt uložený v databáze. Základom dopytu je dopytový výraz, ktorý vyberie množinu záznamov z jednej alebo viacerých tabuliek. Názvy stĺpcov v odpovedi na dopytový výraz možno zmeniť uvedením zoznamu mien v zátvorkách pred vyhradeným slovom AS.

V databáze je uložená iba textová definícia dotazu. Pri každom otvorení (použití) sa odpoveď generuje z aktuálnych dát.

Príklady


Máme tabulku LIDÉ v níž evidujeme údaje o zaměstnanci ve firmě. Obsahuje sloupce ID, JMÉNO, PŘÍJMENÍ, RODNÉ_ČÍSLO, VZDĚLÁNÍ. Uživatelům budeme chtít zpřístupnit údaje z této tabulky, vyjma rodných čísel:
CREATE VIEW lidé_bez_rc AS
SELECT id, jméno, příjmení, vzdělání
FROM lidé


Uživatelé budou pracovat s pohledem LIDÉ_BEZ_RC, jako by to byla normální tabulka. Takže pokud bude chtít uživatel zobrazit seznam všech vysokoškolsky vzdělaných lidí, zapíše následující dotaz:
SELECT jméno, příjmení
FROM lidé_bez_rc
WHERE vzdělání LIKE 'VŠ'


Dále lze view použít pro změnu názvů i formátů sloupců. Vytvoříme pohled, který bude mít stejnou strukturu jako tabulka LIDÉ, jediný rozdíl bude v tom, že JMÉNO a PŘÍJMENÍ bude jako jeden sloupec s názvem CELÉ_JMÉNO:
CREATE VIEW lidé2 (id, celé_jméno, rodné_číslo, vzdělání) AS
SELECT id, příjmení+','+' '+jméno, rodné_číslo, vzdělání
FROM lidé


Pohledy nemusíme používat jen ve spojení se sloupci. Můžeme také využít restrikce a omezit tak i některé řádky. Např. sekretářka bude mít právo manipulovat pouze se záznamy středoškoláků. View, které pro ni vytvoříme, bude vypadat následovně:

CREATE VIEW středoškolák AS
SELECT *
FROM lidé
WHERE vzdělání LIKE 'SŠ'


Poslední příklad uvedu pro případ tvorby pohledu skrz více tabulek. V naší firmě bude skupina ekonomů, která má právo vědět, kolik má kdo základní plat, ale už nechceme, aby měli přístup k osobnímu ohodnocení. Mějme tabulku LIDÉ a dále tabulku PLATY, která obsahuje sloupce ID_OSOBA, ZÁKL_PLAT, OSOBNÍ, PŘÍPL_VEDENÍ. Pro ekonomy zkonstruujeme následující pohled:
CREATE VIEW osoby_platy AS
SELECT id, jméno, příjmení, zákl_plat
FROM lidé, platy
WHERE lidé.id = platy.id_osoba


Dále pohledy můžeme využít v souvislosti s vnořováním dotazů. Pokud máme v našem informačním systému několik SQL dotazů, ve kterých se nám nějaký subdotaz dost často opakuje, můžeme si pro něj vytvořit view, na které se budeme pak v dotazech odkazovat.

Pozri aj


DROP VIEW, SHOW CREATE VIEW



vytlačiť článok  hľadať súvisiace články 

Chat ku článku

Vyhľadávanie na stránke
Reklama
Náhodný obrázok
náhodný obrázok
Kontakty

Martin Kasman, M Software
Smreková 3095/23
Email: martin@kasman.sk

Telefón: 0908 270 294