Dans SQL Server, vous pouvez enregistrer une requête en tant que vue. Les vues sont avantageuses pour de nombreuses raisons, notamment la sécurité, la convivialité et la commodité.
Dans SQL Server, une vue est une table virtuelle dont le contenu est défini par une requête. Il s'agit essentiellement d'une requête pré-écrite qui est stockée dans la base de données.
Une vue consiste en un SELECT
, et lorsque vous exécutez une requête sur la vue, vous en voyez les résultats comme vous le feriez lors de l'ouverture d'une table. Les vues sont appelées tables virtuelles car elles peuvent rassembler des données de plusieurs tables, ainsi que des données agrégées, et les présenter comme s'il s'agissait d'une seule table.
Avantages des vues
Une vue peut être utile lorsqu'il y a plusieurs utilisateurs avec différents niveaux d'accès, qui ont tous besoin de voir des parties des données dans la base de données (mais pas nécessairement toutes les données). Les vues peuvent effectuer les opérations suivantes :
- Restreindre l'accès à des lignes spécifiques dans un tableau
- Restreindre l'accès à des colonnes spécifiques dans un tableau
- Joignez les colonnes de plusieurs tables et présentez-les comme si elles faisaient partie d'une seule table
- Présenter des informations agrégées (telles que les résultats du
COUNT()
fonction)
Comment créer une vue
Pour créer une vue, utilisez le CREATE VIEW
instruction, suivie de SELECT
déclaration.
CREATE VIEW ViewName AS SELECT ...
C'est tout ce qu'on peut en dire. Lorsque vous exécutez cette instruction, la vue est enregistrée dans la base de données
Exemple
Voici un exemple de création d'une vue, puis de sélection de données à partir de cette vue.
-
Créer la vue
Exécutez l'instruction suivante sur la base de données musicale que nous avons créée tout au long de ce didacticiel.
Cet exemple crée une vue appelée RockAlbums. Il sélectionne tous les albums auxquels un genre de "Rock" a été attribué.
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';
-
Afficher la vue
Développez les Vues nœud sous la base de données applicable pour voir votre vue nouvellement créée. Vous pouvez également développer les nœuds de la vue pour voir les colonnes incluses dans sa définition.
-
Exécuter la vue
Maintenant que la vue a été créée, vous pouvez l'exécuter en utilisant un
SELECT
déclaration. Vous pouvez tout sélectionner, ou vous pouvez sélectionner des colonnes spécifiques, affiner davantage les résultats avec unWHERE
clause, etc.SELECT * FROM RockAlbums;
Modifier une vue
Vous pouvez modifier votre vue avec le ALTER VIEW
déclaration.
Il vous suffit de fournir la nouvelle définition de vue que vous souhaitez utiliser. C'est donc presque comme créer une nouvelle vue avec le CREATE VIEW
sauf qu'il en modifie une existante avec ALTER VIEW
déclaration.
Voici un exemple.
-
Modifier la vue
Exécutez l'instruction suivante. Cela ajoute une nouvelle colonne à la sélection de la vue (la
ReleaseDate
colonne).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';
-
Exécuter la vue
Maintenant que nous avons ajouté la
ReleaseDate
colonne à la vue, nous pouvons l'utiliser dans nos requêtes SQL sur la vue.Par exemple, nous pouvons sélectionner tous les albums dont la date de sortie est postérieure à une certaine date.
SELECT * FROM RockAlbums WHERE ReleaseDate > '1985-01-01';