Soit le schéma relationnel suivant :
EMP (EMPNO, ENAME, JOB, MGR*, HIREDATE, SAL, COMM, DEPTNO*)DEPT (DEPTNO, DNAME, LOC)SALGRADE (GRADE, LOSAL, HISAL)
Remarques
-
La relation
EMP
représente des employés.- Un employé est identifié par son numéro
EMPNO
, son nomENAME
, son emploiJOB
, le numero de son chef hierarchiqueMGR
, sa date d’embaucheHIREDATE
, son salaire mensuelSAL
, le montant de ses commissions mensuellesCOMM
et le département auquel il appartientDEPTNO
. MGR
est une clé étrangère qui référence le numérod'un autre employé
.DEPTNO
est une clé étrangère qui référence lenuméro d'un département
.
- Un employé est identifié par son numéro
-
La relation
DEPT
représente des départements.- Un département est identifié par son numéro
DEPTNO
, son nomDNAME
et la villeLOC
dans laquelle il se situe.
- Un département est identifié par son numéro
-
La relation
SALGRADE
représente des grilles de salaire.- Les grilles de salaire sont identifiées par
GRADE
, le salaire minimum de la grilleLOSAL
et le salaire maximumHISAL
.
- Les grilles de salaire sont identifiées par
Diagramme
erDiagram EMP { string EMPNO string ENAME string JOB string MGR date HIREDATE float SAL float COMM string DEPTNO } DEPT { string DEPTNO string DNAME string LOC } SALGRADE { string GRADE float LOSAL float HISAL } EMP }o--|| EMP : "Manager" EMP ||--o{ DEPT : "Département"
Données
DEPT | ||
---|---|---|
DEPTNO | DNAME | LOC |
10 | ACCOUNTING | NEW YORK |
20 | RESEARCH | DALLAS |
30 | SALES | CHICAGO |
40 | OPERATIONS | BOSTON |
SALGRADE | ||
---|---|---|
GRADE | LOSAL | HISAL |
1 | 700 | 1200 |
2 | 1201 | 1400 |
3 | 1401 | 2000 |
4 | 2001 | 3000 |
5 | 3001 | 9999 |
EMP | |||||||
---|---|---|---|---|---|---|---|
EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
7369 | SMITH | CLERK | 7902 | 2000-12-17 | 800 | 20 | |
7499 | ALLEN | SALESMAN | 7698 | 1999-02-20 | 1600 | 300 | 30 |
7521 | WARD | SALESMAN | 7698 | 1991-02-22 | 1250 | 500 | 30 |
7566 | JONES | MANAGER | 7839 | 2000-04-02 | 2975 | 20 | |
7654 | MARTIN | SALESMAN | 7698 | 1998-09-28 | 1250 | 1400 | 30 |
7698 | BLAKE | MANAGER | 7839 | 1997-05-01 | 2850 | 30 | |
7782 | CLARK | MANAGER | 7839 | 1996-06-09 | 2450 | 10 | |
7788 | SCOTT | ANALYST | 7566 | 1995-12-09 | 3000 | 20 | |
7839 | KING | PRESIDENT | 1994-11-17 | 5000 | 10 | ||
7844 | TURNER | SALESMAN | 7698 | 1998-09-08 | 1500 | 0 | 30 |
7876 | ADAMS | CLERK | 7788 | 1993-01-12 | 1100 | 20 | |
7900 | JAMES | CLERK | 7698 | 2000-12-03 | 950 | 30 | |
7902 | FORD | ANALYST | 7566 | 1992-12-03 | 3000 | 20 | |
7934 | MILLER | CLERK | 7782 | 1999-01-23 | 1300 | 10 |
Téléchargement de la base : employes.sqlite
Exercice 2 : Requêtes SQL
Pour chaque requête de l’exercice 1, donner la ou les réponse(s) correspondante(s) en SQL.
Pour les requêtes 10
, 11
et 12
, on pourra définir des vues
qui permettent de définir différents rangs : rang 1 pour le boss, rang 2 pour ses employés directs, etc.
Une vue
(view
en anglais) est une requête SFW stockée sous forme de table temporaire. Une vue peut être requêtée comme une table classique avec des requêtes SFW.
-
Donner le
nom
de tous lesemployés
. -
Donner le
nom
et ladate
d’embauche desemployés
du département20
. -
Donner tous les
salaires
perçus par lesemployés
de l’entreprise. -
Donner le
nom
et lenuméro
dudépartement
desemployés
travaillant àDallas
. -
Donner le
nom
et lesalaire
desemployés
dont lenom
commence par unM
et dont lesalaire
est supérieur à1290$
. -
Donner les
départements
employant desCLERK
,SALESMAN
et desANALYST
. -
Donner le
nom des chefs
dont lesemployés
perçoivent descommissions
. -
Donner le
nom
et lesalaire
desemployés
desdépartements
deChicago
etDallas
dont lesalaire
est supérieur à1000$
. -
Donner le
nom
desemployés
qui gagnent plus que leurchef
. -
Donner la
hiérarchie
de l’entreprise -
Donner le
nombre
d’employéspar niveau
de hiérarchie. -
Donner la
moyenne
dessalaires
par niveau
de hiérarchie.