Nézettáblák létrehozása, módosítása és törlése 2017.04.04.
A nézettábla fogalma Tárolt, „állandósult” lekérdezés A lekérdezés által szállított adatokat táblaként kezeli Virtuális tábla: a legtöbb olyan helyen, ahol adattáblára hivatkozhatunk, nézettáblát is lehet használni lekérdezésekre hivatkozó lekérdezést is lehet készíteni 2017.04.04.
A nézettábla nem tárol adatokat Az adatok az adattáblákban vannak Nézettábla lekérdezésekor a tárolt lekérdezés hajtódik végre A nézettáblák adataihoz való hozzáférés lassabb nézettáblákra alapuló nézettáblák lekérdezése különösen lassú lehet! Nézettáblákon keresztül - bizonyos megszorításokkal - módosítani és törölni is lehet az eredeti adatokat 2017.04.04.
Nézettábla létrehozása Formája: CREATE [OR REPLACE] VIEW nézet-név AS select-utasítás [WITH READ ONLY]; „OR REPLACE” megadása esetén a már meglévő nézettáblát lecserélhetjük az újra WITH READ ONLY: a nézettábla csak olvasható lesz Példa: CREATE VIEW budapesti_vevok_vw AS SELECT * FROM vevok WHERE varos = ‘Budapest’; nem árt, ha már a névből is látszik, hogy nézettábla 2017.04.04.
Módosítható nézettáblák A nézettáblák módosításával a mögöttük lévő adattáblák tartalma módosul Alaphelyzetben nem minden nézettábla módosítható A módosíthatóság kétféleképpen érhető el: a nézettábla eleve egyszerűbb szerkezetű INSTEAD OF típusú triggert készítünk hozzá 2017.04.04.
A módosíthatóság szerkezeti feltételei A nézettábla definíciója nem tartalmazhat: halmazműveletet a DISTINCT, GROUP BY, ORDER BY kulcsszavakat összesítő függvényt al-lekérdezést Nem módosíthatók azok az oszlopok, amiknek értéke egy kifejezésből származik Több táblára hivatkozó nézetnél ezen kívül a módosítás csak egy táblát érinthet INSERT és UPDATE esetén a módosított tábla kulcsainak és egyedi értékeinek egyedinek kell lenni a nézetben is 2017.04.04.
Nézettábla szerkezetének módosítása Az ALTER VIEW parancs csak az újrafordításra és megszorítások módosítására alkalmas A szerkezet megváltoztatására a CREATE OR REPLACE VIEW parancsot használjuk 2017.04.04.
Nézettábla törlése Alakja: DROP VIEW nézet-név; Példa: DROP VIEW budapesti_vevok_vw; Az adatok nem törlődnek! Azok az adattáblákban vannak! 2017.04.04.
Saját nézettábláink adatai USER_VIEWS view A nézettábla által képviselt SELECT utasítás szövegéhez is hozzá lehet itt férni (TEXT oszlop) 2017.04.04.
Mire jók a nézettáblák - 1. Biztonság: csak kiválasztott adatokhoz engednek hozzáférést pl. minden főnök csak a saját beosztottainak az adatait láthatja az adatszótárból is csak nézettáblákat látunk (pl. USER_TABLES, ALL_USERS, stb.) Egyszerűsítik a felhasználók által kiadandó utasításokat pl. nem kell a felhasználónak táblákat összekapcsolni 2017.04.04.
Mire jók a nézettáblák - 2. Függetlenítik az alkalmazásokat a táblák szerkezetétől pl. az alaptáblákhoz új oszlopok adhatók vagy az oszlopok neve megváltoztatható Növelik a biztonságot pl. bonyolult, többször használt lekérdezések nézettáblaként elmenthetők Az adatok különböző felhasználói igények szerint „tálalhatók” pl. a felhasználók csak a nekik szükséges adatokat látják 2017.04.04.
Házi feladat Script készítése nézettábla létrehozására, amelyben az alábbi adatok láthatók: a vevők teljes neve (egy mezőként) a vevők által leadott megrendelés azonosítója a fizetési mód a fizetési határidő a megrendelésen szereplő tételek száma a tételek összértéke 2017.04.04.