sql >> Databasteknik >  >> RDS >> Sqlserver

Skapa en vy i SQL Server 2017

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.

  1. 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';
  2. 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.

  3. 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 en WHERE 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.

  1. Ä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';
  2. 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';

  1. Guide till designdatabas för meddelanden i MySQL

  2. Välj det vanligaste värdet från ett fält i MySQL

  3. Kör en dynamisk korstabellsfråga

  4. Hur inaktiverar jag referensintegritet i Postgres 8.2?