![]() Menu |
![]() Next |
![]() Index/help |
Les vues permettent d'assurer l'objectif d'indépendance logique.
Grace à elles,
chaque utilisateur pourra avoir sa vision propre des données.
On a vu que le résultat d'un SELECT est lui-même une table. Une telle table, qui n'existe pas dans la base mais est créée dynamiquement lors de l'exécution du SELECT, peut être vue comme une table réelle par les utilisateurs. Pour cela, il suffit de cataloguer le SELECT en tant que vue.
Les utilisateurs pourront consulter la base, ou modifier la base (avec certaines restrictions) à travers la vue, c'est-à-dire manipuler la table résultat du SELECT comme si c'était une table réelle.
CREATE VIEW nom_vue [(nom_col1,...)] AS SELECT ... WITH CHECK OPTION ;
La spécification des noms de colonnes de la vue est facultative. Par défaut, les noms des colonnes de la vue sont les mêmes que les noms des colonnes résultat du SELECT (si certaines colonnes résultat du SELECT sont des expressions, il faut renommer ces colonnes dans le SELECT, ou spécifier les noms de colonne de la vue).
Une fois créée, une vue s'utilise comme une table. Il n'y a pas de duplication des informations mais stockage de la définition de la vue.
Exemple : Création d'une vue constituant une restriction de la table emp aux employés du departement 10.
Le CHECK OPTION permet de vérifier que la mise à jour ou l'insertion faite à travers la vue ne produisent que des lignes qui font partie de la sélection de la vue.CREATE VIEW emp10 AS SELECT * FROM emp WHERE n_dept = 10 ;
Ainsi donc, si la vue emp10 a été créée avec CHECK OPTION on ne pourra à travers cette vue ni modifier, ni insérer des employés ne faisant pas partie du département 10.
Il est possible d'effectuer des INSERT et des UPDATE à travers des vues, sous deux conditions :
UPDATE emp10 SET sal = sal *1.1;
Toutes les lignes de la table emp, telles que le contenu de la colonne n_dept est égal à 10 seront modifiées.
DROP VIEW nom_vue;
RENAME ancien_nom TO nouveau_nom;
Dernière modification :