Chapitre 21 Vues

Table des matières

21.1 Syntaxe ALTER VIEW
21.2 Syntaxe de CREATE VIEW
21.3 Syntaxe DROP VIEW
21.4 Syntaxe SHOW CREATE VIEW

Les vues (y compris les vues modifiables) sont implémentées en version 5 de MySQL. Les vues sont disponibles dans les versions binaires depuis la version 5.0.1 et plus récent.

Ce chpatire présente les sujets suivants :

Pour utiliser les vues, lorsque vous êtes passés en version 5.0.1 depuis une ancienne version, il faut mettre aussi à jour la table de droits, car elles contiennent des informations destinées aux vues. See Section 2.6.7, « Mise à jour des tables de droits ».

21.1 Syntaxe ALTER VIEW

ALTER VIEW view_name [(column_list)] AS select_statement

Cette commande modifie la définition d'une vue. select_statement est le même que pour CREATE VIEW. See Section 21.2, « Syntaxe de CREATE VIEW ».

Cette commande a été ajoutée en MySQL 5.0.1.

21.2 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, if given, is parsed and ignored.

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 2 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 en MySQL 5.0.1.

21.3 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. See Section 13.5.3.19, « SHOW WARNINGS | ERRORS ».

RESTRICT et CASCADE, si utilisés, sont analysés mais ignorés.

Cette commande a été ajoutée en MySQL 5.0.1.

21.4 Syntaxe SHOW CREATE VIEW

SHOW CREATE VIEW view_name

Cette 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 en MySQL 5.0.1.