Vous êtes sur la page 1sur 8

Cours: SQL – PL/SQL

Chapitre 5
SQL : Les VUES
Prof. MELAOUENE Noussaiba
n.melaouene@emsi.ma
Année scolaire 2023/2024
Les vues
Définition:

• Table virtuelle calculée à partir d’autres tables ou vues par une requête
• Pas d’existence physique mais recalculée chaque fois qu’elle est invoquée
• Utilisable partout : (Select, Update, Delete, Insert, Grant..)
• Vue mono table, Vue multi-tables

Intérêts:

• Indépendance application/données
• Personnalisation des données selon les besoins des utilisateurs
• Confidentialité
• Rapidité des requêtes
Les vues
Utilisation:

• Effet macro: remplacer une requête compliquée par des requêtes plus
simples
• Confidentialité
• Contraintes d’intégrité : Pour les maj. (insert, update, delete), avec des
restrictions
• Augmenter l’indépendance logique: Les applications utilisant les tables de
la base ne doivent pas être modifiées si on change le schéma de la base
Les vues

Permet de Création d’une vue: Syntaxe


vérifier
que les
mises à
jour ou les
insertions
CREATE OR REPLACE VIEW <nom vue> [(liste des
faites
travers la
à
attributs)]
vue
produisent
ne
AS <requête de sélection> Aucune
modification
que des
lignes qui [WITH CHECK OPTION | WITH READ ONLY] (INSERT,
UPDATE)
feront
partie de n’est possible
la
sélection
de la vue.
Les vues
Utiliser une vue comme table:
SELECT ….

FROM nom_de_vue

WHERE …

Renommer une vue:


RENAME ancien_nom

TO nouveau_nom
Les vues
Suppression d’une vue:

La suppression Les vues figurent


d’une vue dans les tables
n’entraîne pas la systèmes
DROP VIEW nom_de_vue ALL_CATALOG,
suppression des
données. USER_VIEWS et
ALL_VIEWS.
Les vues
Règles d’utilisations des VUES
Le SELECT principal de

SELECT

DELETE
UPDATE

INSERT
la vue contient

Plusieurs tables OUI NON NON NON


GROUP BY OUI NON NON NON
DISTINCT OUI NON NON NON
fonction de groupe OUI NON NON NON
Attribut calculé OUI NON OUI NON
Attribut NOT NULL pas dans le OUI OUI OUI NON
SELECT
UNION, INTERSECT, MINUS OUI NON NON NON
Les vues
Exemple : création d’une vue pour limiter l’accès

 Dans cet exemple, l’utilisateur crée une vue (view_dept_201) sur la table des employés afin
de limiter l’accès aux seules lignes où le département a la valeur 201 :

CREATE VIEW view_dept_201 AS (SELECT emp_id, name,


department, hire_date)
FROM db.employees
WHERE department = 201;

Vous aimerez peut-être aussi