I SQL Server kan du spara en fråga som en vy. Visningar är fördelaktiga av många skäl, inklusive säkerhet, användbarhet och bekvämlighet.
I SQL Server, en vy är en virtuell tabell vars innehåll definieras av en fråga. Det är i princip en förskriven fråga som lagras i databasen.
En vy består av en SELECT
uttalande, och när du kör en fråga mot vyn ser du resultatet av den som när du öppnar en tabell. Vyer kallas virtuella tabeller eftersom de kan dra ihop data från flera tabeller, såväl som aggregerad data, och presentera det som om det vore en enda tabell.
Fördelar med vyer
En vy kan vara användbar när det finns flera användare med olika åtkomstnivåer, som alla behöver se delar av data i databasen (men inte nödvändigtvis all data). Vyer kan göra följande:
- Begränsa åtkomsten till specifika rader i en tabell
- Begränsa åtkomsten till specifika kolumner i en tabell
- Sammanfoga kolumner från flera tabeller och presentera dem som om de är en del av en enda tabell
- Presentera samlad information (som resultaten av
COUNT()
funktion)
Hur man skapar en vy
För att skapa en vy, använd CREATE VIEW
sats, följt av SELECT
uttalande.
CREATE VIEW ViewName AS SELECT ...
Det är allt som finns. När du kör den satsen sparas vyn i databasen
Exempel
Här är ett exempel på hur du skapar en vy och sedan väljer data från den vyn.
-
Skapa vyn
Kör följande uttalande mot musikdatabasen som vi har skapat genom denna handledning.
Det här exemplet skapar en vy som heter RockAlbums. Den väljer alla album som har tilldelats en genre av "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';
-
Visa vyn
Expandera Visningar nod under den tillämpliga databasen för att se din nyskapade vy. Du kan också utöka vyns noder för att se kolumnerna som ingår i dess definition.
-
Kör vyn
Nu när vyn har skapats kan du köra den genom att använda en
SELECT
påstående. Du kan välja allt, eller så kan du välja specifika kolumner, begränsa resultaten ytterligare med enWHERE
klausul, etc.SELECT * FROM RockAlbums;
Ändra en vy
Du kan ändra din vy med ALTER VIEW
uttalande.
Allt du gör är att tillhandahålla den nya vydefinitionen som du vill använda. Så det är nästan som att skapa en ny vy med CREATE VIEW
sats förutom att den ändrar en befintlig med ALTER VIEW
uttalande.
Här är ett exempel.
-
Ändra vyn
Kör följande uttalande. Detta lägger till en ny kolumn i vyns urval (
ReleaseDate
kolumn).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 vyn
Nu när vi har lagt till
ReleaseDate
kolumn till vyn, kan vi använda det i våra SQL-frågor mot vyn.Vi kan till exempel välja alla album där releasedatumet ligger efter ett visst datum.
SELECT * FROM RockAlbums WHERE ReleaseDate > '1985-01-01';