10/12/2009
1
Bases de données Bases de données
Les vues :
mercredi 4 novembre 2009 1 Ph. CHOCHOIS
Les vues Les vues
Définition:
Une vue est une table logique basée sur une table.
Une vue peut aussi être basée:
- Sur une vue
- Sur un ensemble de tables - Sur un ensemble de vues
- Sur un ensemble de vues et de tables
La vue affiche des données qui ne lui sont pas propres mais les données qui proviennent des autres tables (ou vues).
C’est comme une fenêtre qui permet de visualiser une partie (sélection de lignes ou de colonnes) des tables.
Les vues sont stockées dans le SGBD. Vous pouvez donc les réutiliser dans d’autres sessions.
mercredi 4 novembre 2009 2
10/12/2009
2
Les vues Les vues
Exemple :
Voici une table CLIENT affichée grâce à la requête suivante:
«SELECT * FROM CLIENT;»
mercredi 4 novembre 2009 3 NCLI NOM ADRESSE LOCALITE CAT COMPTE
B112 HANSENNE 23 A. DUMONT POITIERS C1 1250.00
C123 MERCIER 25 RUE LEMAITRE NAMUR C1 -2300.00
B332 MONTI 112 RUE NEUVE GENEVE B2 0.00
F010 TOTO 5 RUE GODEFROID POITIERS C1 0.00
Je crée une vue nommée « CLIENT_P »qui me permet de sélectionner les nom et adresse des habitants de Poitiers.
J’obtiens l’affichage suivant grâce à la requête suivante:
«SELECT * FROM CLIENT_P;»
NOM ADRESSE
HANSENNE 23 A. DUMONT TOTO 5 RUE GODEFROID
Les vues Les vues
Syntaxe :
La syntaxe pour créer une vue est très simple:
«CREATE VIEW nomVue AS requête;» nomVue: Nom attribué à la vue.
Requête: requête permettant de récupérer les données de la vue.
Exemple:
CREATE VIEW CLIENT_P AS SELECT nom , adresse FROM CLIENT
WHERE LOCALITE = ‘Poitiers’;
mercredi 4 novembre 2009 4
«SELECT * FROM CLIENT_P;» NOM ADRESSE HANSENNE 23 A. DUMONT TOTO 5 RUE GODEFROID
10/12/2009
3
Les vues Les vues
Utilité des vues :
-Permet de simplifier l’écriture des requêtes
-Permet de mémoriser les requêtes réutilisables
-Permet de masquer certaines informations.
On peut par exemple donner les droits d’utiliser une vue mais interdire d’utiliser la table. Dans notre exemple, les utilisateurs ne pourront pas accéder aux soldes des comptes des clients.
mercredi 4 novembre 2009 5
Les vues Les vues
Les vues peuvent être utilisées comme des tables dans des requêtes.
On les appelle aussi des tables logiques.
Exemple:
SELECT nomclient FROM CLIENT_P WHERE compte > 8000;
SELECT * FROM CLIENT WHERE numclient NOT IN
(SELECT numclient FROM CLIENT_P);
mercredi 4 novembre 2009 6
10/12/2009
4
Les vues Les vues
Insertion à l’aide d’une vue :
L’insertion à l’aide d’une vue est seulement possible avec certains SGBD et pour les vues simples (pour lesquelles il n’y a pas d’ambigüité).
-Exemple d’insertion qui peut fonctionner:
CREATE VIEW employe10 AS SELECT * FROM EMPLOYE WHERE numservemploye = 10;
INSERT INTO employe10
VALUES (25383, 'Dupont', 'Chef','1998-09-01', 12000,NULL,10,NULL);
-Exemple de vue avec insertion impossible:
CREATE VIEW nbemployeparservice AS
SELECT numservemploye , count(*) FROM EMPLOYE GROUP BY numservemploye;
mercredi 4 novembre 2009 7