In SQL Server können Sie eine Abfrage als Ansicht speichern. 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
Um eine Ansicht zu erstellen, verwenden Sie CREATE VIEW
-Anweisung, gefolgt von SELECT
Aussage.
CREATE VIEW ViewName AS SELECT ...
Das ist alles dazu. Wenn Sie diese Anweisung ausführen, wird die Ansicht in der Datenbank gespeichert
Beispiel
Hier ist ein Beispiel für das Erstellen einer Ansicht und das anschließende Auswählen von Daten aus dieser Ansicht.
-
Ansicht erstellen
Führen Sie die folgende Anweisung für die Musikdatenbank aus, die wir in diesem Tutorial erstellt haben.
Dieses Beispiel erstellt eine Ansicht namens RockAlbums. Es wählt alle Alben aus, denen das Genre "Rock" zugeordnet wurde.
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';
-
Ansicht anzeigen
Erweitern Sie die Ansichten Knoten unter der entsprechenden Datenbank, um Ihre neu erstellte Ansicht anzuzeigen. Sie können auch die Knoten der Ansicht erweitern, um die Spalten anzuzeigen, die in ihrer Definition enthalten sind.
-
Führen Sie die Ansicht aus
Nachdem die Ansicht erstellt wurde, können Sie sie mit einem
SELECT
ausführen Erklärung. Sie können alles auswählen oder bestimmte Spalten auswählen und die Ergebnisse mit einemWHERE
weiter eingrenzen Klausel usw.SELECT * FROM RockAlbums;
Ansicht ändern
Sie können Ihre Ansicht mit ALTER VIEW
ändern Aussage.
Sie müssen lediglich die neue Ansichtsdefinition angeben, die Sie verwenden möchten. Es ist also fast so, als würde man mit CREATE VIEW
eine neue Ansicht erstellen -Anweisung, außer dass eine vorhandene mit ALTER VIEW
geändert wird Aussage.
Hier ist ein Beispiel.
-
Ansicht ändern
Führen Sie die folgende Anweisung aus. Dadurch wird der Auswahl der Ansicht eine neue Spalte hinzugefügt (das
ReleaseDate
Spalte).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';
-
Führen Sie die Ansicht aus
Jetzt haben wir das
ReleaseDate
hinzugefügt Spalte zur Ansicht hinzufügen, können wir diese in unseren SQL-Abfragen für die Ansicht verwenden.Beispielsweise können wir alle Alben auswählen, deren Veröffentlichungsdatum nach einem bestimmten Datum liegt.
SELECT * FROM RockAlbums WHERE ReleaseDate > '1985-01-01';