Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server 2016:Erstellen Sie eine Ansicht

In SQL Server können Sie Abfragen als Ansichten ausführen. Aufrufe sind aus vielen Gründen vorteilhaft, darunter Sicherheit, Benutzerfreundlichkeit und Komfort.

In SQL Server eine Ansicht ist eine virtuelle Tabelle, deren Inhalt durch eine Abfrage definiert wird. Es ist im Grunde eine vorgefertigte Abfrage, die in der Datenbank gespeichert wird.

Eine Ansicht besteht aus einem SELECT -Anweisung, und wenn Sie eine Abfrage für die Ansicht ausführen, sehen Sie die Ergebnisse wie beim Öffnen einer Tabelle. Ansichten werden als virtuelle Tabellen bezeichnet, da sie Daten aus mehreren Tabellen zusammenführen sowie Daten aggregieren und so darstellen können, als ob es sich um eine einzelne Tabelle handelt.

Vorteile von Aufrufen

Eine Ansicht kann nützlich sein, wenn es mehrere Benutzer mit unterschiedlichen Zugriffsebenen gibt, die alle Teile der Daten in der Datenbank sehen müssen (jedoch nicht unbedingt alle Daten). Ansichten können Folgendes tun:

  • Beschränken Sie den Zugriff auf bestimmte Zeilen in einer Tabelle
  • Beschränken Sie den Zugriff auf bestimmte Spalten in einer Tabelle
  • Fügen Sie Spalten aus mehreren Tabellen zusammen und stellen Sie sie so dar, als wären sie Teil einer einzigen Tabelle
  • Präsentieren Sie aggregierte Informationen (z. B. die Ergebnisse von COUNT() Funktion)

So erstellen Sie eine Ansicht

Sie erstellen eine Ansicht, indem Sie CREATE VIEW verwenden -Anweisung, gefolgt von SELECT Aussage.

CREATE VIEW ViewName 
AS
SELECT ...

Wir erstellen jetzt eine Ansicht aus unserer vorherigen Abfrage.

  1. Gestalten Sie die Ansicht

    Nehmen Sie die Abfrage aus unserem vorherigen Beispiel und stellen Sie ihr CREATE VIEW RecentAlbums AS voran .

    Entfernen Sie auch den ORDER BY -Klausel, da Ansichten diese Klausel nicht unterstützen (es sei denn, TOP , OFFSET oder FOR XML ist ebenfalls angegeben).

    Fügen Sie am Ende der Anweisung auch ein Semikolon als Anweisungsabschlusszeichen hinzu (mehr dazu weiter unten).

    Beispielcode

    Unten ist der Code aus unserem Beispiel mit dem ORDER BY -Klausel entfernt und ein Semikolon als Anweisungsabschlusszeichen hinzugefügt.

    Ich habe es auch etwas umformatiert, um es besser lesbar zu machen).

    CREATE VIEW RecentAlbums 
    AS
    SELECT  Albums.ReleaseDate, 
            Albums.AlbumName, 
            Genres.Genre, 
            Artists.ArtistName
    FROM Albums 
    INNER JOIN
            Artists ON 
            Albums.ArtistId = Artists.ArtistId 
            INNER JOIN
                Genres ON 
                Albums.GenreId = Genres.GenreId
    WHERE   (Albums.ReleaseDate > DATEADD(year, - 10, GETDATE()));

    In diesem Beispiel habe ich am Ende der Ansicht ein Semikolon hinzugefügt. Der Abfrage-Designer hat dies nicht eingeschlossen, aber es ist eine bewährte Vorgehensweise, es einzufügen.

    Das Semikolon ist Teil des ANSI SQL-92-Standards. Es ist ein Anweisungsabschlusszeichen.

    Außerdem hat Microsoft angekündigt, dass Transact-SQL-Anweisungen ohne Semikolon in SQL Server 2016 veraltet sind und in einer zukünftigen Version nicht mehr unterstützt werden (SQL Server hat in der Vergangenheit den GO verwendet Schlüsselwort als Anweisungsabschlusszeichen anstelle des Semikolons).

  2. Führen Sie die Ansicht aus

    Führen Sie nun die Ansicht so aus, wie Sie jede andere Abfrage ausführen würden.

    Klicken Sie auf Ausführen in der Symbolleiste.

    Sie können nun im Objekt-Explorer zu der Ansicht navigieren. Erweitern Sie es und Sie sehen die Spalten und ihre Datentypen und Eigenschaften – als wäre es eine Tabelle.

  3. Ansicht abfragen

    Nachdem die Ansicht erstellt wurde, können Sie die Ansicht abfragen, indem Sie SELECT ausführen Aussage dagegen.

    So können Sie unsere neu erstellte Ansicht mit SELECT * FROM RecentAlbums; abfragen .

  4. Ansicht filtern

    Eines der guten Dinge an Ansichten ist, dass Sie Ihre eigenen Filterkriterien darauf anwenden können, um die Ergebnisse weiter zu filtern.

    Beispielsweise könnten Sie WHERE Genre = 'Pop' hinzufügen , sodass die Ansicht nur pop zurückgibt Alben der letzten 10 Jahre.

Ansicht ändern

Sie können Ihre Ansicht ändern, indem Sie ALTER VIEW verwenden -Anweisung anstelle von CREATE VIEW Aussage.

  1. Entwerfen Sie die geänderte Ansicht

    Hier ändern wir unsere Ansicht, um Alben der letzten 20 Jahre statt nur 10 anzuzeigen.

    Es ist eine ziemlich altmodische Sammlung, also wird jedes Album, das innerhalb der letzten 20 Jahre veröffentlicht wurde, als "aktuell" eingestuft :)

    Wir geben auch eine weitere Spalte zurück:Artists.ActiveFrom

    Beispielcode

    Hier ist der Code, den wir für das Beispiel verwenden:

    ALTER VIEW RecentAlbums 
    AS
    SELECT  Albums.ReleaseDate, 
            Albums.AlbumName, 
            Genres.Genre, 
            Artists.ArtistName,
            Artists.ActiveFrom
    FROM Albums 
    INNER JOIN
            Artists ON 
            Albums.ArtistId = Artists.ArtistId 
            INNER JOIN
                Genres ON 
                Albums.GenreId = Genres.GenreId
    WHERE   (Albums.ReleaseDate > DATEADD(year, - 20, GETDATE()));
  2. Ansicht abfragen

    Wenn Sie jetzt die Ansicht abfragen, werden Alben im Wert von 20 Jahren zurückgegeben. Außerdem wird das Datum angezeigt, seit dem der Künstler aktiv war.