Manuel de référence MySQL 5.0


précédentsommairesuivant

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 CREATE VIEW ou ALTER VIEW ;
  • destruction de vues avec DROP VIEW ;
  • affichage des métadonnées de vues avec SHOW CREATE VIEW.

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

 
Sélectionnez
ALTER VIEW view_name [(column_list)] AS select_statement

Cette 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

 
Sélectionnez
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 :

 
Sélectionnez
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.

 
Sélectionnez
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

 
Sélectionnez
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

 
Sélectionnez
SHOW CREATE VIEW view_name

Cette commande montre la commande CREATE VIEW qui créera la vue spécifiée.

 
Sélectionnez
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.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+