Académique Documents
Professionnel Documents
Culture Documents
7. Liste des salaires des employés avec le pourcentage par rapport au total des
salaires de leur département (utilisez une vue qui fournira le total des
salaires).
Vous pourrez chercher une autre solution qui n'utilise pas de vue mais un
select emboîté dans le from.
create view v_emp (matr, nom, dept, GAINS, lieu) as
select matr, nome, emp.dept, sal + nvl(comm,0), lieu
from emp,dept
where emp.dept = dept.dept;
-----
create view vemp10 as select * from emp where dept=10;
-----
create view vt (dept, total) as
select dept, sum(sal+nvl(comm,0)) from emp group by dept;
Avec les nouvelles possibilités offertes par SQL (select emboîté dans la clause
from) on peut se passer de la création d'une vue:
Si on veut bien utiliser les facilités offertes par SQL*PLUS(pas dans SQL) :
break on dept skip 1
SEMESTRE : III
LES VUES
Plan du tp :
1. Introduction
2. intérêt des vues
3. création d'une vue
4. modification d'une vue
5. renommer une vue
6. gérer les autorisation d'une vue
Introduction
Une vue est une liste de colonnes ou une série d'enregistrements extraits d'une ou de
plusieurs tables existantes de la base de données relationnelle, ou comme une
combinaison d'une ou plusieurs vues et d'une ou de plusieurs tables de la base de
données relationnelle.
Une vue est une table virtuelle, c'est-à-dire dont les données ne sont pas stockées dans
une table de la base de données, et dans laquelle il est possible de rassembler des
informations provenant de plusieurs tables. On parle de "vue" car il s'agit simplement
d'une représentation des données dans le but d'une exploitation visuelle. Les données
présentes dans une vue sont définies grâce à une clause SELECT.
La vue représente de cette façon une sorte d'intermédiaire entre la base de données et
l'utilisateur. Cela a de nombreuses conséquences :
• Une sélection des données à afficher
• Une restriction d'accès à la table pour l'utilisateur, c'est-à-dire une sécurité des
données accrue
• Un regroupement d'informations au sein d'une entité
La création d'une vue se fait grâce à la clause CREATE VIEW suivie du nom que l'on
donne à la vue, puis du nom des colonnes dont on désire agrémenter cette vue (il faut
autant de redéfinitions de colonne qu'il y en aura en sortie), puis enfin d'une clause AS
précédant la sélection.
• Aller dans SQL Server Mangement Studio
• Dans la base de données, faire clic droit sur « Views »
• Sélectionner « New View …»
• Dans la fenêtre « Add Table », sélectionner la table où on veut créer la vue
• Cliquer sur « Add »
• Ci-dessous un exemple qui illustre comment on crée la vue avec la sélection des
colonnes
redéfinition les noms des colonnes d’une table avec une critère de sélection avec
WHERE
Les vues ainsi créées peuvent être l'objet de nouvelles requêtes en précisant le nom de
la vue au lieu d'un
nom de table dans un ordre SELECT...
• Aller dans SQL Server Mangement Studio
• Dans la base de données, cliquer sur « Views »
• Faire clic droit sur la vue qu’on veut exécuter
• Cliquer sur « Script View as »
• Cliquer sur « SELECT To »
• Cliquer sur « New Query Editor Window »
Renommer d’une vue
Le nom de la vue est important car le nom de la vue est utilisé dans les requêtes
comme le nom d’une
table. Le nom de la vue est unique dans la base de données.
Le nom de la vue est modifiable. Pour modifier le nom de la vue
• Aller dans SQL Server Mangement Studio
• Dans la base de données, cliquer sur « Views »
• Faire clic droit sur la vue qu’on veut renommer
• Cliquer sur « Rename »
La vue créée peut être accordée l’autorisation à tous les utilisateurs ou à certains
utilisateurs seulement.
Pour accorder la permissions de la vue :
• Aller dans SQL Server Mangement Studio
• Dans la base de données, cliquer sur « Views »
• Faire clic droit sur la vue qu’on veut gérer la permission
• Cliquer sur « Properties »
• Cliquer sur « Permissions »
• Cliquer sur « Search »
• Cliquer sur « Browse »
• Sélection le groupe des utilisateurs prédéfini ou Public
-- soit la table suivante :
CREATE TABLE T_EMPLOYE
(EMP_ID INTEGER PRIMARY KEY,
EMP_MATRICULE CHAR(8),
EMP_TITRE VARCHAR(4),
EMP_NOM VARCHAR(32),
EMP_PRENOM VARCHAR(32),
EMP_DATE_NAIS DATE,
EMP_SALAIRE FLOAT,
EMP_STATUT CHAR(8),
EMP_MAIL VARCHAR(128),
EMP_TEL CHAR(16))
-- permet de stocker les employés de l'entreprise