8 Co To Sa I Do Czego Sluza Widoki View

Widoki/Perspektywy

W SQL tabela, którą utworzono za pomocą zapytania CREATE TABLE, nazywa się tabelą podstawową (base table). Jej struktura i dane przechowywane są przez system operacyjny.

Wynik każdego zapytania SELECT też formalnie jest tabelą. Tabelę taką nazywa się tabelą pochodną (derived table).

Widokiem (lub perspektywą) nazywamy trwałą definicję tabeli pochodnej, która to definicja przechowywana jest w bazie danych. Jest to logiczna tabela bazująca na jednej lub wielu tabelach.

Tworzenie widoku

CREATE VIEW nazwa AS SELECT treść zapytania select;

Tabele, których użyto do zdefiniowania widoku, są nazywane underlying tables.

Widok ma następujące właściwości:
- widok nie przechowuje danych - jest on przeznaczony do pokazywania danych zawartych w innych tabelach.
- widok może być użyty w rozkazie SQL w dowolnym miejscu, w którym możliwe jest użycie tabeli z zastrzeżeniem, że można wykonywać selekcję z widoku tylko wtedy, gdy zapytanie na którym bazuje widok zawiera:
- połączenie
- klauzule GROUP BY, CONNECT BY lub START WITH
- klauzulę DISTINCT, pseudokolumny lub wyrażenia na liście kolumn

Możliwa jest zmiana danych zawartych w widoku, który posiada pseudokolumny lub wyrażenia dotąd dopóki rozkaz UPDATE nie odwołuje się do pseudokolumny lub wyrażenia.

Widoki są używane do:
- utworzenia dodatkowego poziomu zabezpieczenia tabeli poprzez ograniczenie dostępu do określonych kolumn lub wierszy tabeli bazowej
- ukrycia złożoności danych - na przykład widok może być użyty do operacji na wielu tabelach tak, by wydawało się, że operacje wykonywane są na jednej tabeli.
- pokazywania danych z innej perspektywy - dla przykładu widok może zostać użyty - do zmiany nazwy kolumny bez zmiany rzeczywistych danych zapisanych w tabeli.
- zapewnienia poziomu integralności.

Przykład:

CREATE VIEW bibl

AS SELECT ksiazki.tytul, autorzy.imie,

autorzy.nazwisko, miejsca.miejsce

FROM ksiazki, autorzy, miejsca

WHERE ksiazki.autor = autorzy.autor_nr

AND ksiazki.miejsce = miejsca.miejsce_nr

WITH CHECK OPTION CONSTRAINT chkopt

;

O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-ShareAlike 3.0 License