Vues MySQL
Instruction MySQL 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.
MySQL 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];
MySQL met à jour une vue
Une vue peut être mise à jour avec la CREATE OR REPLACE VIEW
déclaration.
CRÉER OU REMPLACER LA Syntaxe DE LA VUE
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';
MySQL supprime une vue
Une vue est supprimée avec l' DROP VIEW
instruction.
Syntaxe DROP VIEW
DROP VIEW view_name;
Le SQL suivant supprime la vue "Brazil Customers" :
Exemple
DROP VIEW [Brazil Customers];