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
ouALTER
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▲
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▲
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_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 dans MySQL 5.0.1.