Vues SQL
Instruction SQL CREATE VIEW
En SQL, une vue est une table virtuelle basée sur le jeu de résultats d'une instruction SQL.
Une vue contient des lignes et des colonnes, tout comme une vraie table. Les champs d'une vue sont des champs d'une ou plusieurs tables réelles de la base de données.
Vous pouvez ajouter des instructions et des fonctions SQL à une vue et présenter les données comme si elles provenaient d'une seule table.
Une vue est créée avec l' CREATE VIEW
instruction.
Syntaxe CREATE VIEW
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
Remarque : Une vue affiche toujours des données à jour ! Le moteur de base de données recrée la vue chaque fois qu'un utilisateur l'interroge.
SQL CREATE VIEW Exemples
Le SQL suivant crée une vue qui affiche tous les clients du Brésil :
Exemple
CREATE VIEW [Brazil
Customers] AS
SELECT
CustomerName, ContactName
FROM Customers
WHERE
Country = 'Brazil';
Nous pouvons interroger la vue ci-dessus comme suit :
Exemple
SELECT * FROM [Brazil
Customers];
Le SQL suivant crée une vue qui sélectionne tous les produits de la table "Produits" dont le prix est supérieur au prix moyen :
Exemple
CREATE VIEW [Products Above Average Price] AS
SELECT ProductName, Price
FROM Products
WHERE Price > (SELECT AVG(Price) FROM Products);
Nous pouvons interroger la vue ci-dessus comme suit :
Exemple
SELECT * FROM [Products Above Average Price];
Mise à jour SQL d'une vue
Une vue peut être mise à jour avec la CREATE OR REPLACE
VIEW
déclaration.
SQL CRÉER OU REMPLACER LA VUE Syntaxe
CREATE OR REPLACE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
Le SQL suivant ajoute la colonne "City" à la vue "Brazil Customers" :
Exemple
CREATE OR REPLACE VIEW [Brazil Customers] AS
SELECT CustomerName, ContactName, City
FROM Customers
WHERE Country = 'Brazil';
SQL suppression d'une vue
Une vue est supprimée avec l' DROP VIEW
instruction.
Syntaxe SQL DROP VIEW
DROP VIEW view_name;
Le SQL suivant supprime la vue "Brazil Customers" :
Exemple
DROP VIEW [Brazil Customers];