Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Créer une vue dans SQL Server 2017

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.

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

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

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