menu
Menu
suivant
Next
help/index
Index/help

Les vues


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.

Créer une vue

La commande CREATE VIEW permet de créer une vue en spécifiant le SELECT constituant la définition de la vue :
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.

CREATE VIEW emp10 AS
SELECT * 
FROM emp
WHERE n_dept = 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.

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 :

Exemple : Modification des salaires du département 10 à travers la vue emp10.
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.

Supprimer une vue

Une vue peut être détruite par la commande :
DROP  VIEW nom_vue;

Renommer une vue

On peut renommer une vue par la commande :
RENAME ancien_nom TO nouveau_nom;

© nasrlarbi@free.fr

Dernière modification :