07. Nézettáblák (VIEW)

A nézettáblázat az adatbázisban létező táblán vagy táblákon végrehajtott művelet eredményét tartalmazó olyan új táblázat, amely mögött a valóságban nem áll megfelelő táblázat. Akkor használunk nézettáblákat, hogyha az eredeti tábláknak egy lekérdezésben nem minden mezőjét szeretnénk használni egy összetett lekérdezésben és erre a lekérdezésre gyakran szükségünk van.A nézettáblával nem tudunk új rekordokat felvinni, vagy meglévőket módosítani

VIEW létrehozása

Nézettáblát a;

CREATE VIEW nézettábla_név [alias_név, alias_név ...
AS lekérdezés;

paranccsal hozhatunk létre.

A lekérdező utasítás formáit a lekérdező nyelv tárgyalása során részletezzük. A 3/b osztály névsorát tartalmazó nézettáblázatot hoz létre a következő parancs.

CREATE VIEW 3b AS SELECT * FROM Diakok WHERE osztaly = '3/b';

Akár több táblázatból is vehetünk oszlopokat a nézettáblába. A nézettábla segítségével a három relációra felbontott órarend relációt összevonhatjuk egy táblázatba a kényelmesebb kezelés érdekében.

CREATE VIEW orarend FROM tanar-to_id, tantargy-osztaly, ora
AS SELECT TID, tantargy, osztaly, idopont, terem    
FROM Tanar-to_id A, Tantargy-osztaly B, Ora C 
WHERE C.to_id = B.to_id AND C.to_id = A.to_id;

Az itt szereplő lekérdező (SELECT) utasítás két összekapcsolás műveletet is tartalmaz, melyeket csak később magyarázunk meg.

DROP VIEW - Nézettábla megszüntetése

A nézettáblák megszüntetése a relációkhoz hasonlóan a

DROP VIEW nézettábla_név;

paranccsal lehetséges.

Megjegyzés

A MYSQL-ben a nézettáblák nem egy-egy adatbázishoz kapcsolódnak, hanem a teljes adatbázis-kezelőhöz. Ez azért fontos, mert a nézettáblák létrehozása során meg kell lennie a teljes adatbázis kezelő rendszerhez való hozzáférés jognak. ez gyakorlatban a root jogot jelenti.