In SQL Server kunt u een query opslaan als een weergave. Weergaven zijn om vele redenen nuttig, waaronder veiligheid, bruikbaarheid en gemak.
In SQL Server, een weergave is een virtuele tabel waarvan de inhoud wordt gedefinieerd door een query. Het is in feite een vooraf geschreven zoekopdracht die in de database wordt opgeslagen.
Een weergave bestaat uit een SELECT
statement, en wanneer u een query uitvoert op de view, ziet u de resultaten ervan zoals u zou doen bij het openen van een tabel. Weergaven worden virtuele tabellen genoemd omdat ze gegevens uit meerdere tabellen kunnen samenvoegen, evenals gegevens kunnen aggregeren, en deze kunnen presenteren alsof het een enkele tabel is.
Voordelen van weergaven
Een weergave kan handig zijn als er meerdere gebruikers zijn met verschillende toegangsniveaus, die allemaal delen van de gegevens in de database moeten zien (maar niet noodzakelijk alle gegevens). Weergaven kunnen het volgende doen:
- Beperk de toegang tot specifieke rijen in een tabel
- Beperk de toegang tot specifieke kolommen in een tabel
- Kolommen uit meerdere tabellen samenvoegen en ze presenteren alsof ze deel uitmaken van een enkele tabel
- Gezamenlijke informatie presenteren (zoals de resultaten van de
COUNT()
functie)
Een weergave maken
Gebruik de CREATE VIEW
. om een weergave te maken statement, gevolgd door de SELECT
verklaring.
CREATE VIEW ViewName AS SELECT ...
Dat is alles. Wanneer u die instructie uitvoert, wordt de weergave opgeslagen in de database
Voorbeeld
Hier is een voorbeeld van het maken van een weergave en het selecteren van gegevens uit die weergave.
-
Maak de weergave
Voer de volgende instructie uit voor de muziekdatabase die we in deze tutorial hebben gemaakt.
In dit voorbeeld wordt een weergave gemaakt met de naam RockAlbums. Het selecteert alle albums waaraan een genre "Rock" is toegewezen.
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';
-
Bekijk het uitzicht
Vouw de Weergaven uit knooppunt onder de toepasselijke database om uw nieuw gemaakte weergave te zien. U kunt ook de knooppunten van de weergave uitvouwen om de kolommen te zien die in de definitie zijn opgenomen.
-
Voer de weergave uit
Nu de weergave is gemaakt, kunt u deze uitvoeren met een
SELECT
uitspraak. U kunt alles selecteren, of u kunt specifieke kolommen selecteren, de resultaten verder verfijnen met eenWHERE
clausule, enz.SELECT * FROM RockAlbums;
Een weergave wijzigen
U kunt uw weergave wijzigen met de ALTER VIEW
verklaring.
Het enige dat u hoeft te doen, is de nieuwe weergavedefinitie opgeven die u wilt gebruiken. Het is dus bijna alsof u een nieuwe weergave maakt met de CREATE VIEW
statement behalve dat het een bestaande wijzigt met de ALTER VIEW
verklaring.
Hier is een voorbeeld.
-
De weergave wijzigen
Voer de volgende instructie uit. Dit voegt een nieuwe kolom toe aan de selectie van de weergave (de
ReleaseDate
kolom).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';
-
Voer de weergave uit
Nu we de
ReleaseDate
. hebben toegevoegd kolom naar de weergave, we kunnen die gebruiken in onze SQL-query's tegen de weergave.We kunnen bijvoorbeeld alle albums selecteren waarvan de releasedatum na een bepaalde datum ligt.
SELECT * FROM RockAlbums WHERE ReleaseDate > '1985-01-01';