chp3 Les Vues
chp3 Les Vues
chp3 Les Vues
Université de Sousse
est une vision particulière des données d'une ou plusieurs tables de la base
2
2. Création des vues
Syntaxe :
CREATE [OR REPLACE] VIEW nom_vue (Col1, Col2, ...)
AS SELECT ... ;
Noms de colonnes qui seront associés en nombre et ordre aux éléments du
SELECT
ou
CREATE [OR REPLACE] VIEW nom_vue
AS SELECT ... ;
-- la vue reprend les noms des colonnes ou alias de la requête
3
2. Création des vues
Exemple
Vue contenant les employés ayant pour JOB ANALYSTE :
CREATE VIEW employes_analyste AS
SELECT *
FROM EMP
WHERE upper(job) = 'ANALYSTE‘;
il est maintenant possible d'utiliser cette vue comme si c'était une table.
Select *
from employes_analyste
where SAL > 500;
Renommer une vue
RENAME ancien_nom nouveau_nom ;
Exemple : RENAME employes_analyste les_analystes;
Supprimer une vue
DROP VIEW nom_vue
Exemple : DROP VIEW les_analystes 4
3. Utilité des vues
Une vue peut être utilisée pour :
Restreindre l'accès à certaines lignes ou colonnes d'une table (sécurité des données)
Simplifier la tâche d'un utilisateur final en lui fournissant une vue, résultat d'une
requête complexe sur plusieurs tables.
Ecrire des requêtes complexes dans lesquelles les vues jouent le rôle d'étapes
Intermédiaires.
Assurer la confidentialité et l’intégrité des données. les vues agissent comme des
fenêtres sur la BD ;
5
4. Classification des vues
On distingue les vues simples des vues complexes en fonction de la nature de la
requête de définition.
4.1 Vues Simple (monotable )
Une vue monotable est définie par une requête SELECT ne comportant
qu’une seule table dans sa clause FROM.
Exemple :
Créer une vue qui contient les noms et les salaires des employés recruté dans
l'année 87
6
4. Classification des vues
4.1 Vues Simple (monotable )
Il est possible d'effectuer des DELETE, INSERT et des UPDATE à travers des
vues simples.
7
4. Classification des vues
4.1 Vues Simple (monotable )
Exemple : soit la vue EMP10 contenant tous les employés travaillant dans le
département numéro 10
CREATE VIEW EMP10 AS
SELECT *
FROM EMP
WHERE DEPTNO = 10;
8
4. Classification des vues
4.2 Vues complexes
Contient dans sa définition, plusieurs tables (jointures), une fonction
appliquée à des regroupements, ou des expressions.
Exemple 1 :
CREATE VIEW employes_Dept AS
SELECT ENAME, DNAME
FROM EMP , DEPT
WHERE upper(job) = 'SALESMAN'
And EMP.DEPTNO = DEPT.DEPTNO;
Exemple 2 :
CREATE VIEW MOYENNE_SAL_Dept AS
SELECT DEPTNO, AVG(SAL)
FROM EMP
Group by DEPTNO;
9
4. Classification des vues
4.2 Vues complexes
Les restrictions de création sont les suivantes :
• Si la requête de définition contient une sous-interrogation (jointure
procédurale), elle ne doit pas être synchronisée ou faire intervenir la table
source.
• Il n’est pas possible d’utiliser les opérateurs ensemblistes (UNION [ALL],
INTERSECT ou MINUS).
10
EMP(EMPNO, ENAME, JOB, HIREDATE , MGR, SAL, COMM, #DEPTNO)
DEPT(DEPTNO, DNAME, LOC)
PROJET(CodeP, NomP)
PARTICIPATION(EMPNO#, CodeP#, Fonction)
SALGRADE(GRADE, LOSAL, HISAL )
11