Vue (vue) SQL

Les vues sont des tables visuelles.

Ce chapitre explique comment créer, mettre à jour et supprimer des vues.

Requête CREATE VIEW en SQL

Qu'est-ce qu'une vue ?

En SQL, une vue est une table visuelle basée sur le résultat d'une requête SQL.

Les vues contiennent des lignes et des colonnes, comme une table réelle. Les champs des vues sont des champs réels provenant d'une ou plusieurs tables réelles de la base de données. Nous pouvons ajouter des fonctions SQL, des WHERE et des JOIN aux vues, et nous pouvons également soumettre des données, comme si elles provenaient d'une seule table.

Remarque :La conception et la structure de la base de données ne sont pas affectées par les fonctions, les clauses WHERE ou JOIN dans les vues.

Syntaxe CREATE VIEW en SQL

CREATE VIEW view_name COMME
SELECT column_name(s)
FROM table_name
WHERE condition

Remarque :Les vues affichent toujours les données les plus récentes. Chaque fois que l'utilisateur interroge une vue, le moteur de base de données reconstruit les données en utilisant des requêtes SQL.

Exemple de CREATE VIEW en SQL

Les vues peuvent être utilisées à l'intérieur d'une requête, d'un procédure stockée ou d'une autre vue. En ajoutant des fonctions, des joins, etc. à la vue, nous pouvons soumettre aux utilisateurs les données que nous souhaitons leur fournir.

La base de données échantillonnée Northwind possède quelques vues par défaut installées. La vue "Current Product List" liste tous les produits en cours d'utilisation dans la table Products. Cette vue est créée par le SQL suivant :

CREATE VIEW [Current Product List] COMME
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No

Nous pouvons interroger cette vue ci-dessus :

SELECT * FROM [Current Product List]

Une autre vue de la base de données Northwind échantillonnée sélectionne tous les produits de la table Products dont le prix unitaire est supérieur à la moyenne des prix unitaires :

CREATE VIEW [Products Above Average Price] COMME
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products) 

Nous pouvons effectuer une telle requête sur cette vue :

SELECT * FROM [Products Above Average Price]

Une autre instance de vue issue de la base de données Northwind calcule le total des ventes de chaque catégorie en 1997. Veuillez noter que cette vue tire ses données d'une autre vue appelée "Product Sales for 1997":

CREATE VIEW [Category Sales For 1997] COMME
SELECT DISTINCT CategoryName,Sum(ProductSales) COMME CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName 

Nous pouvons effectuer une telle requête sur cette vue :

SELECT * FROM [Category Sales For 1997]

Nous pouvons également ajouter des conditions à la requête. Actuellement, nous ne devons voir que les ventes totales de la catégorie "Beverages" :

SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'

Mise à jour de la vue SQL

Vous pouvez utiliser la syntaxe suivante pour mettre à jour la vue :

Syntaxe CREATE OR REPLACE VIEW SQL
CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

Maintenant, nous voulons ajouter la colonne "Category" à la vue "Current Product List". Nous allons mettre à jour la vue via le SQL suivant :

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No

Révoquer la vue SQL

Vous pouvez supprimer une vue en utilisant la commande DROP VIEW.

Syntaxe DROP VIEW SQL

DROP VIEW view_name