Czym jest widok?
Widok (View) nie jest fizyczną tabelą — w swojej standardowej formie nie przechowuje danych. Widok to obiekt bazodanowy, który przechowuje zapisane zapytanie SELECT. Kiedy użytkownik odpytuje widok (np. SELECT * FROM MojWidok), baza danych w tle wykonuje zapytanie SELECT zdefiniowane w tym widoku i zwraca jego wyniki; dla użytkownika końcowego widok wygląda i zachowuje się jak zwykła tabela.
Składnia CREATE VIEW ... AS ...
Składnia: CREATE VIEW [nazwa_widoku] AS [zapytanie_select];
Przykład — stwórzmy widok, który zawsze pokazuje tylko uczniów z klasy '3A' wraz z nazwą klasy, ukrywając skomplikowane łączenie (JOIN):
CREATE VIEW V_Uczniowie_3A AS
SELECT
U.Imie,
U.Nazwisko,
U.Srednia,
K.NazwaKlasy
FROM Uczniowie U
INNER JOIN Klasy K ON U.ID_Klasy = K.ID_Klasy
WHERE K.NazwaKlasy = '3A';
Od teraz, zamiast pisać całe to skomplikowane zapytanie, użytkownik (np. analityk lub aplikacja) może po prostu wykonać:
SELECT * FROM V_Uczniowie_3A;Korzyści
- Upraszczanie (abstrakcja): widok może ukryć bardzo skomplikowaną logikę (wiele
JOIN,GROUP BY, obliczenia) za prostą, przyjazną nazwą. Analityk biznesowy nie musi znać szczegółów modelu danych — odpytuje po prostu widok, np.V_SprzedazMiesieczna. - Bezpieczeństwo (kontrola dostępu): widok może filtrować kolumny i wiersze. Na przykład zamiast udostępniać tabelę Pracownicy z wrażliwymi danymi (PESEL, Zarobki, AdresZamieszkania), można stworzyć widok V_Pracownicy_Publiczny, który zawiera tylko Imie, Nazwisko, Dzial, i nadać uprawnienia tylko do odczytu z tego widoku, a odebrać dostęp do tabeli bazowej. Widok działa wtedy jak fasada lub filtr, ukrywając wrażliwe kolumny i/lub wiersze.