I SQL Server kan du gemme en forespørgsel som en visning. Visninger er gavnlige af mange årsager, herunder sikkerhed, brugervenlighed og bekvemmelighed.
I SQL Server, en visning er en virtuel tabel, hvis indhold er defineret af en forespørgsel. Det er dybest set en forudskrevet forespørgsel, der er gemt i databasen.
En visning består af en SELECT
sætning, og når du kører en forespørgsel mod visningen, ser du resultaterne af den, som du ville, når du åbner en tabel. Visninger omtales som virtuelle tabeller, fordi de kan samle data fra flere tabeller såvel som aggregerede data og præsentere det, som om det er en enkelt tabel.
Fordele ved visninger
En visning kan være nyttig, når der er flere brugere med forskellige adgangsniveauer, som alle har brug for at se dele af dataene i databasen (men ikke nødvendigvis alle dataene). Visninger kan gøre følgende:
- Begræns adgangen til bestemte rækker i en tabel
- Begræns adgangen til specifikke kolonner i en tabel
- Slå sammen kolonner fra flere tabeller og præsentere dem, som om de er en del af en enkelt tabel
- Vis aggregerede oplysninger (såsom resultaterne af
COUNT()
funktion)
Sådan opretter du en visning
For at oprette en visning skal du bruge CREATE VIEW
sætning efterfulgt af SELECT
erklæring.
CREATE VIEW ViewName AS SELECT ...
Det er alt, hvad der skal til. Når du kører denne sætning, gemmes visningen i databasen
Eksempel
Her er et eksempel på at oprette en visning og derefter vælge data fra den visning.
-
Opret visningen
Kør følgende erklæring mod musikdatabasen, som vi har oprettet gennem denne øvelse.
Dette eksempel opretter en visning kaldet RockAlbums. Den vælger alle albums, der er blevet tildelt en genre af "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';
-
Se visningen
Udvid Visninger node under den relevante database for at se din nyoprettede visning. Du kan også udvide visningens noder for at se de kolonner, der er inkluderet i dens definition.
-
Kør visningen
Nu hvor visningen er oprettet, kan du køre den ved at bruge en
SELECT
udmelding. Du kan vælge alt, eller du kan vælge specifikke kolonner, indsnævre resultaterne yderligere med enWHERE
klausul osv.SELECT * FROM RockAlbums;
Rediger en visning
Du kan ændre din visning med ALTER VIEW
erklæring.
Alt du skal gøre er at angive den nye visningsdefinition, som du gerne vil bruge. Så det er næsten som at oprette en ny visning med CREATE VIEW
sætning bortset fra at den ændrer en eksisterende med ALTER VIEW
erklæring.
Her er et eksempel.
-
Rediger visningen
Kør følgende erklæring. Dette tilføjer en ny kolonne til visningens valg (
ReleaseDate
kolonne).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';
-
Kør visningen
Nu hvor vi har tilføjet
ReleaseDate
kolonne til visningen, kan vi bruge det i vores SQL-forespørgsler mod visningen.For eksempel kan vi vælge alle albums, hvor udgivelsesdatoen er efter en bestemt dato.
SELECT * FROM RockAlbums WHERE ReleaseDate > '1985-01-01';