W SQL Server możesz zapisać zapytanie jako widok. Widoki są korzystne z wielu powodów, w tym bezpieczeństwa, użyteczności i wygody.
W SQL Server widok to wirtualna tabela, której zawartość jest definiowana przez zapytanie. Jest to w zasadzie wstępnie napisane zapytanie, które jest przechowywane w bazie danych.
Widok składa się z SELECT
instrukcji, a kiedy uruchamiasz zapytanie względem widoku, widzisz jego wyniki tak, jak podczas otwierania tabeli. Widoki są określane jako tabele wirtualne, ponieważ mogą gromadzić dane z wielu tabel, a także agregować dane i przedstawiać je tak, jakby była to pojedyncza tabela.
Zalety widoków
Widok może być przydatny, gdy istnieje wielu użytkowników o różnych poziomach dostępu, z których wszyscy muszą widzieć części danych w bazie danych (ale niekoniecznie wszystkie dane). Widoki mogą wykonywać następujące czynności:
- Ogranicz dostęp do określonych wierszy w tabeli
- Ogranicz dostęp do określonych kolumn w tabeli
- Połącz kolumny z wielu tabel i prezentuj je tak, jakby były częścią jednej tabeli
- Przedstawiaj informacje zbiorcze (takie jak wyniki
COUNT()
funkcja)
Jak utworzyć widok
Aby utworzyć widok, użyj CREATE VIEW
instrukcja, po której następuje SELECT
oświadczenie.
CREATE VIEW ViewName AS SELECT ...
To wszystko. Po uruchomieniu tej instrukcji widok jest zapisywany w bazie danych
Przykład
Oto przykład tworzenia widoku, a następnie wybierania danych z tego widoku.
-
Utwórz widok
Uruchom następującą instrukcję w bazie danych muzyki, którą utworzyliśmy w tym samouczku.
Ten przykład tworzy widok o nazwie RockAlbums. Wybiera wszystkie albumy, którym przypisano gatunek „Rock”.
CREATE VIEW RockAlbums AS SELECT AlbumName, ArtistName FROM Albums INNER JOIN Artists ON Albums.ArtistId = Artists.ArtistId INNER JOIN Genres ON Albums.GenreId = Genres.GenreId WHERE Genres.Genre = 'Rock';
-
Wyświetl widok
Rozwiń Widoki węzła pod odpowiednią bazą danych, aby zobaczyć nowo utworzony widok. Możesz także rozwinąć węzły widoku, aby zobaczyć kolumny zawarte w jego definicji.
-
Uruchom widok
Teraz, gdy widok został utworzony, możesz go uruchomić za pomocą
SELECT
oświadczenie. Możesz wybrać wszystko lub możesz wybrać określone kolumny, zawęzić wyniki dalej za pomocąWHERE
klauzula itp.SELECT * FROM RockAlbums;
Zmień widok
Możesz zmodyfikować swój widok za pomocą ALTER VIEW
oświadczenie.
Wystarczy, że podasz nową definicję widoku, której chcesz użyć. Więc to prawie jak tworzenie nowego widoku za pomocą CREATE VIEW
instrukcja, z wyjątkiem tego, że zmienia istniejącą za pomocą ALTER VIEW
oświadczenie.
Oto przykład.
-
Zmień widok
Uruchom następującą instrukcję. Spowoduje to dodanie nowej kolumny do wyboru widoku (
ReleaseDate
kolumna).ALTER VIEW RockAlbums AS SELECT AlbumName, ArtistName, ReleaseDate FROM Albums INNER JOIN Artists ON Albums.ArtistId = Artists.ArtistId INNER JOIN Genres ON Albums.GenreId = Genres.GenreId WHERE Genres.Genre = 'Rock';
-
Uruchom widok
Teraz, gdy dodaliśmy
ReleaseDate
kolumny do widoku, możemy użyć tego w naszych zapytaniach SQL względem widoku.Na przykład możemy wybrać wszystkie albumy, których data wydania przypada po określonej dacie.
SELECT * FROM RockAlbums WHERE ReleaseDate > '1985-01-01';