Académique Documents
Professionnel Documents
Culture Documents
Les vues
1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables
de la base.
2. La définition d'une vue est donnée par un SELECT qui indique les données de la base
qui seront vues.
3. Seule la définition de la vue est enregistrée dans la base, et pas les données de la vue.
On peut parler de table virtuelle.
4. Les utilisateurs peuvent alors voir une partie des données, soit la partie qui les
intéresse.
Les vues
Syntaxe de création
Syntaxe de suppression
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.
DELETE FROM EMP10
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.
UPDATE EMP10 SET SAL = SAL * 1.1
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.
Les vues
Une vue peut créer des données qu'elle ne pourra pas visualiser. On peut ainsi ajouter un employé du
département 20 avec la vue EMP10.
INSERT INTO EMP10 VALUES (5647,'HERNAN','SALESMAN',7782,'1982-05-
10',3000,NULL,20)
Si l'on veut éviter cela il faut ajouter WITH CHECK OPTION dans l'ordre de création de la vue après
l'interrogation définissant la vue. Il est alors interdit de créer au moyen de la vue des lignes qu'elle ne
pourrait relire. Ce dispositif fonctionne également pour les mises à jour.
⁃ A l’exécution, on doit visiter chaque ligne de EMP et évaluer la condition job = 'CLERK'. Le
⁃ Si les utilisateurs de notre base consultent fréquemment EMP avec le critère de recherche JOB, il
nous convient de créer un index sur la table EMP sur la colonne JOB.
Les index : concept de base
Un tel index inclut une liste d’indices pour chaque valeur distincte de JOB. Les indices référencent les
lignes de la table EMP.
CLERK 1,11,12,14
ANALYST 8,13
MANAGER 4,6,7
PRESIDENT 9
SALESMAN 2,3,5,10
Exemple:
Pour insérer un nouvel employé, on peut utiliser la séquence emp_seq pour dériver une valeur
séquentielle et unique de la clé primaire empno. Exemple:
INSERT INTO emp(empno,ename,sal)VALUES(NEXT VALUE FOR emp_seq,'PATRICK',1200);