Widoki w SQL Server

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.

Kurs SQL Server - Widoki
Kurs SQL Server – Widoki

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.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Komentarz do “Widoki w SQL Server”