Czym są widoki w SQL Server i innych bazach danych?
W odróżnieniu od tabel, widoki w SQL Server nie przechowują danych. Widoków używamy w przypadkach, gdy chcemy zapisać nasze zapytanie SQL, a następnie odwołać się do danych przy użycia krótkiego polecenia SELECT * FROM NAZWA_WIDOKU. Do widoków możemy odwoływać się w zapytaniach SQL dokładnie w ten sam sposób, jak w odwołujemy się do tabel. Tworzenie widoku rozpoczynamy poleceniem CREATE VIEW. Listę widoków możemy szybko sprawdzić w SSMS wybierając w drzewie Serwer, bazę, a następnie drzew Views.
CREATE VIEW – Tworzenie widoków w SQL Server
Na początek sam schemat tworzenia widoku. Zaraz za wspomnianym poleceniem CREATE VIEW wprowadzamy kod SQL, za pomocą którego generowane będą dane w widoku. Najprostszym przykładem jest tutaj widok oparty o polecenie SQL bez warunków. Wynik danych z widoku będzie dokładnie taki sam, jak wynik polecenia SQL z tabeli źródłowej.
--tomaszkenig.pl use adventureworks; CREATE VIEW NAZWA_WIDOKU AS Select * from Tabela;
Przykład na bazie AdventureWorks:
--tomaszkenig.pl use adventureworks go CREATE VIEW dbo.NASZ_WIDOK AS select * from [Person].[StateProvince] where name like 'A%' ;
Nasz widok oparty jest o zapytanie mające wskazać nam wszystkie rekordy i kolumny z tabeli StateProvince, które w kolumnie name mają wartości rozpoczynające się od litery „A”. Widoki na SQL Server nie mogą zawierać polecenia ORDER BY. Próba wykorzystania tego polecenia wygeneruje komunikat informujący o błędzie. Dopuszczalne jest tworzenie widoku opartego na innym widoku. Do stworzonego przez nas widoku odwołujemy, tak jak w przypadku tabel przy użyciu polecenia SELECT, jak w poniższym przykładzie.
SELECT * FROM dbo.NASZ_WIDOK;
ALTER VIEW – Zmiana widoku w SQL Server
Zmian w istniejącym widoku dokonujemy za pomocą polecenia ALTER VIEW. W instrukcji SELECT wprowadzamy zmodyfikowany kod i uruchamiamy zapytanie. Czy w takim razie nie łatwiej skasować widok, a potem utworzyć go na nowo? Tak oczywiście możemy zrobić. Pamiętaj jednak, że w miarę korzystania z bazy danych, różni użytkownicy mogą zyskać uprawnienia do obiektów takich jak tabele, czy widoki. Po skasowaniu obiektu uprawnienia także są usuwane. Stosując polecenie ALTER zachowujemy uprawnienia.
--tomaszkenig.pl use adventureworks go ALTER VIEW NASZ_WIDOK AS select * from [Person].[StateProvince] where name like 'B%' ;
DROP VIEW – Kasowanie widoku w MsSQL
Sam widok usuwany jest przy pomocy polecenia DROP.
--tomaszkenig.pl use adventureworks go DROP VIEW NASZ_WIDOK;
Polecenia DML oparte na widokach
W SQL Server możesz wykonywać polecenia DML jak UPDATE, DELETE, INSERT w oparciu o widoki. Więcej o tym dowiesz się w kolejnych częściach kursu.
Artykuł jest częścią kursy SQL Sever, który znajdziesz w całości pod tym adresem: Kurs SQL.
Komentarz do “Widoki w SQL Server”
Przydałoby się prawidłowe ustawienie kolejności lekcji. Za każdym razem trzeba wracać do spisu lekcji.