Achref El Mouelhi
elmouelhi.achref@gmail.com
1 Définition
2 Création
3 Suppression
4 Propriétés
SQL
Vue
Comme une table virtuelle : physiquement inexistante
Définie par un nom et une requête SQL
I c
Pouvant être interrogée comme une tableEL
H
M OêtreUmise à jour
f E L
Pouvant, sous certaines conditions,
c h re
c A
SQL
Vue
Comme une table virtuelle : physiquement inexistante
Définie par un nom et une requête SQL
I c
Pouvant être interrogée comme une tableEL
H
M OêtreUmise à jour
f E L
Pouvant, sous certaines conditions,
c h re
c A
Remarque
Une mise à jour des tables à partir desquelles une vue est définie se
propage aux vues.
SQL
Avantages
I
c
Simplifier les requêtes en masquant la complexité du schéma
L H
si E
Sécuriser l’accès à certaines colonnesU
pas avec la requête de la vue. M
O on ne les sélectionne
fE L
c h r e
c A
SQL
Avantages
I
c
Simplifier les requêtes en masquant la complexité du schéma
L H
si E
Sécuriser l’accès à certaines colonnesU
pas avec la requête de la vue. M
O on ne les sélectionne
fE L
c h r e
c A
Inconvénients
Restrictions sur les mises à jour
Coût : chaque appel d’une vue vaut l’exécution de la requête
select précisée à la création
SQL
Syntaxe de création
CREATE [OR REPLACE] VIEW nom_vue [ ( colonnes ) ] AS
requêteSelect
[WITH [CASCADED | LOCAL] CHECK OPTION]
I c
ELH
U
L MO
f E
c hre
c A
SQL
Syntaxe de création
CREATE [OR REPLACE] VIEW nom_vue [ ( colonnes ) ] AS
requêteSelect
[WITH [CASCADED | LOCAL] CHECK OPTION]
I c
ELH
Exemple U
L
CREATE OR REPLACE VIEW marseillaisMO
AS
E
SELECT num, nom, prenom, fsalaire
re
FROM personne
c h
c A
WHERE ville = ’Marseille’;
SQL
Syntaxe de création
CREATE [OR REPLACE] VIEW nom_vue [ ( colonnes ) ] AS
requêteSelect
[WITH [CASCADED | LOCAL] CHECK OPTION]
I c
ELH
Exemple U
L
CREATE OR REPLACE VIEW marseillaisMO
AS
E
SELECT num, nom, prenom, fsalaire
re
FROM personne
c h
c A
WHERE ville = ’Marseille’;
SQL
I c
Syntaxe de suppression ELH
U
DROP VIEW nom_vue;
L MO
f E
c hre
c A
SQL
SQL
SQL
SQL
SQL
I
c
Exercice 1
H
ELqui ont le plus grand
U
MO
En utilisant les vues, sélectionnez les personnes
nombre de voitures en utilisant les
E L deux fonctions d’agrégation max et
count.
c h ref
c A
SQL
SQL
Modifier le modèle (de la table véhicule) est possible
UPDATE vehicule_marseillais
SET modele = ’focus’
WHERE marque = ’ford’;
I c
ELH
U
L MO
f E
c hre
c A
SQL
Modifier le modèle (de la table véhicule) est possible
UPDATE vehicule_marseillais
SET modele = ’focus’
WHERE marque = ’ford’;
I c
ELH
Modifier le nom (de la table personne) est possible
U
UPDATE vehicule_marseillais
L MO
SET nom = ’mercure’
f E
WHERE prenom = ’sophie’;
c hre
c A
SQL
Modifier le modèle (de la table véhicule) est possible
UPDATE vehicule_marseillais
SET modele = ’focus’
WHERE marque = ’ford’;
I c
ELH
Modifier le nom (de la table personne) est possible
U
UPDATE vehicule_marseillais
L MO
SET nom = ’mercure’
f E
WHERE prenom = ’sophie’;
c hre
c A
Modifier le nom (de la table personne) et le modèle (de la table véhicule) est impossible
UPDATE vehicule_marseillais
SET nom = ’mercure’,
modele = ’focus’
WHERE prenom = ’sophie’;
SQL
SQL
Insérer le tuple suivant (dans la table véhicule) est possible
INSERT INTO vehicule_marseillais
SET modele = ’ibiza’,
marque = ’seat’;
I c
ELH
U
L MO
f E
c hre
c A
SQL
Insérer le tuple suivant (dans la table véhicule) est possible
INSERT INTO vehicule_marseillais
SET modele = ’ibiza’,
marque = ’seat’;
I
c
EL H
O U
Insérer un tuple dans une vue L quiM
implique deux insertions dans
deux tables différentes e
r (un E dans la table véhicule et un
f premier
deuxième dans la c
A h
table personne) est impossible
INSERT INTO
c
vehicule_marseillais
SET nom = ’green’,
prenom = ’michel’,
modele = ’captur’,
marque = ’renault’;
SQL
I
c
H
ELla mise à jour +
Conditions pour la suppression = conditions pour
U
La vue est mono-table
L MO
h r e fE
A c
c
SQL
Syntaxe de création
CREATE [OR REPLACE] VIEW nom_vue [ ( colonnes ) ] AS
requêteSelect
[WITH [CASCADED | LOCAL] CHECK OPTION]
I c
ELH
U
L MO
f E
c hre
c A
SQL
Syntaxe de création
CREATE [OR REPLACE] VIEW nom_vue [ ( colonnes ) ] AS
requêteSelect
[WITH [CASCADED | LOCAL] CHECK OPTION]
I c
ELH
U
MO
Explication
f E L
hre
check option permet de modifier une vue à condition que le tuple modifié
c
appartienne encore à la vue après la mise à jour
c A
check option interdit également l’insertion dans une vue d’un tuple contenant
une valeur qui ne satisfait pas la condition de sélection de la vue.
SQL
Considérons la vue suivante
CREATE OR REPLACE VIEW cadre_marseillais AS
SELECT *
FROM marseillais
WHERE salaire >= 2000
WITH CHECK OPTION;
I c
ELH
U
L MO
f E
c hre
c A
SQL
Considérons la vue suivante
CREATE OR REPLACE VIEW cadre_marseillais AS
SELECT *
FROM marseillais
WHERE salaire >= 2000
WITH CHECK OPTION;
I c
ELH
O U
L M
f E VALUES(8, ’freeman’, ’henri’,
Il est possible d’ajouter un nouveau tuple à cette vue
h r
INSERT INTO cadre_marseillais
c e
2500);
c A
SQL
Considérons la vue suivante
CREATE OR REPLACE VIEW cadre_marseillais AS
SELECT *
FROM marseillais
WHERE salaire >= 2000
WITH CHECK OPTION;
I c
ELH
O U
L M
f E VALUES(8, ’freeman’, ’henri’,
Il est possible d’ajouter un nouveau tuple à cette vue
h r
INSERT INTO cadre_marseillais
c e
2500);
c A
Ajouter un tuple qui ne remplit pas les conditions de création d’une vue est
impossible
INSERT INTO cadre_marseillais VALUES(9,’freuder’,’jennifer’
,1500);