Vous êtes sur la page 1sur 11

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

Université de Jendouba
Institut supérieur d’informatique du Kef

Séance de Cours SQL

CH3 SQL : Les vues

Enseignant : MR Kamel Garrouch


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