21. Vues▲
Les vues (y compris les vues modifiables) sont implémentées dans la version 5 de MySQL. Les vues sont disponibles dans les versions binaires depuis la version 5.0.1 et plus récentes.
Ce chapitre présente les sujets suivants :
- création ou modification de vues avec les commandes
CREATEVIEWouALTERVIEW; - destruction de vues avec
DROPVIEW; - affichage des métadonnées de vues avec
SHOWCREATEVIEW.
Pour utiliser les vues, lorsque vous êtes passés en version 5.0.1 depuis une ancienne version, il faut mettre à jour la table de droits, car elle contient des informations destinées aux vues. Voir Section 2.6.7 : « Mise à jour des tables de droits »2.6.7. Mise à jour des tables de droits.
21-A. Syntaxe ALTER VIEW▲
ALTER VIEW view_name [(column_list)] AS select_statementCette commande modifie la définition d'une vue. La clause select_statement est identique à CREATE VIEW. Voir Section 21.2 : « Syntaxe de CREATE VIEW »21.2. Syntaxe de CREATE VIEW.
Cette commande a été ajoutée dans MySQL 5.0.1.
21-B. Syntaxe de CREATE VIEW▲
CREATE [OR REPLACE] [ALGORITHM = {MERGE | TEMPTABLE}] VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION]Cette commande crée une nouvelle vue, ou remplace une vue existante si la clause OR REPLACE est fournie. La clause select_statement est une commande SELECT qui fournit la définition de la vue. La liste optionnelle de colonnes peut être fournie pour définir explicitement les noms des colonnes.
WITH CHECK OPTION, si utilisées, sont analysées, mais ignorées.
Une vue peut être créée par différents types de commandes SELECT. Par exemple, SELECT peut faire référence à une table seule, une jointure ou une UNION. La commande SELECT peut ne pas faire de référence à une table. Les exemples suivants définissent une vue qui sélectionne deux colonnes dans une table, et leur applique une transformation :
mysql> CREATE TABLE t (qty INT, price INT);
mysql> INSERT INTO t VALUES(3, 50);
mysql> CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t;
mysql> SELECT * FROM v;
+------+-------+-------+
| qty | price | value |
+------+-------+-------+
| 3 | 50 | 150 |
+------+-------+-------+Par défaut, la vue est placée dans la base de données par défaut. Pour créer une vue explicitement dans une base de données, spécifiez le nom de la base de données lors de la création : db_name.view_name.
mysql> CREATE VIEW test.v AS SELECT * FROM t;Cette commande a été ajoutée dans MySQL 5.0.1.
21-C. Syntaxe DROP VIEW▲
DROP VIEW [IF EXISTS]
view_name [, view_name] ...
[RESTRICT | CASCADE]DROP VIEW supprime une ou plusieurs vues. Vous devez avoir les droits de DROP pour chaque vue.
Vous pouvez utiliser le mot clé IF EXISTS pour éviter l'affichage d'un message d'alerte lorsque les vues n'existent pas. Lorsque cette clause est utilisée, une NOTE est générée pour chaque vue inexistante. Voir Section 13.5.3.19 : « SHOW WARNINGS | ERRORS »13.5.3.19. SHOW WARNINGS | ERRORS.
RESTRICT et CASCADE, si utilisées, sont analysées, mais ignorées.
Cette commande a été ajoutée dans MySQL 5.0.1.
21-D. Syntaxe SHOW CREATE VIEW▲
SHOW CREATE VIEW view_nameCette commande montre la commande CREATE VIEW qui créera la vue spécifiée.
mysql> SHOW CREATE VIEW v;
+-------+----------------------------------------------------+
| Table | Create Table |
+-------+----------------------------------------------------+
| v | CREATE VIEW `test`.`v` AS select 1 AS `a`,2 AS `b` |
+-------+----------------------------------------------------+Cette commande a été ajoutée dans MySQL 5.0.1.


