chp3 Les Vues

Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1sur 11

Ministère de l’Enseignement Supérieur et de recherche scientifique

Université de Sousse

Séance de Cours SQL

CH3 SQL : Les vues


1. Introduction

 est une vision particulière des données d'une ou plusieurs tables de la base

 peut être considérer comme une table virtuelle


 n’a pas d’existence propre car seule sa structure est stockée dans le dictionnaire de
données.

peut être référencée dans un SELECT de la même façon qu'une table.

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

Attention ! On ne peut pas utiliser de clause ORDER BY.

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.

 Sauvegarder des requêtes.

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

CREATE VIEW Employe_87 AS


SELECT ENAME, SAL
FROM EMP
WHERE HIERDATE Between ('01/01/1987' and '31/12/1987');

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.

Les conditions suivantes doivent être remplies :


Pour effectuer un DELETE, le select qui définit la vue ne doit pas
comporter de jointure, de group by, de distinct, de fonction de groupe ;

Pour un UPDATE, en plus des conditions précédentes, les colonnes


modifiées doivent être des colonnes réelles de la table sous-jacente ;

Pour un INSERT, en plus des conditions précédentes, toute colonne not


null de la table sous-jacente doit être présente dans la vue

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;

Il est possible de modifier les salaires du département 10 à travers la vue EMP10.


Toutes les lignes de la table EMP avec DEPT = 10 seront modifiées :

UPDATE EMP10 SET SAL = SAL * 1.1;

Il est possible d'insérer des employées à travers la vue EMP10.


INSERT INTO EMP10 Values( 7069, 'SIM', CLERK , 7902, '17/10/80', 600, 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

Vous aimerez peut-être aussi