Vous êtes sur la page 1sur 2

1.

Le terme "directeur" n'est pas spécifiquement une profession, mais plutôt un rôle ou
un poste au sein d'un département. Les directeurs peuvent être issus de différentes
professions en fonction des besoins de l'entreprise.
2. Il est possible qu'un employé soit directeur de plusieurs départements s'il est qualifié
pour cela et si l'entreprise le décide ainsi.
3. En général, le directeur d'un département travaille dans le département qu'il dirige.
Cependant, dans certains cas, il peut être responsable de plusieurs départements et
peut donc travailler dans différents départements.
4. Pour la relation EMP, la clé primaire est "eno" (numéro d'employé), tandis que la clé
étrangère est "dno" (numéro de département).

Pour la relation DEPT, la clé primaire est "dno" (numéro de département), tandis que la clé
étrangère est "dir" (numéro d'employé du directeur).

Le schéma de la base de données peut être représenté comme suit :

EMP(eno, enom, prof, dateemb, sal, comm, dno)

DEPT(dno, dnom, dir, ville)

Clé primaire pour EMP : eno

Clé étrangère pour EMP : dno

Clé primaire pour DEPT : dno

Clé étrangère pour DEPT : dir (référence à eno)

1. Pour donner tous les tuples de DEPT :

SQL
SELECT * FROM DEPT;

2. Pour afficher les deux premières lignes de DEPT (classées par dno croissant), puis les
deux suivantes :

SQL
SELECT * FROM DEPT ORDER BY dno LIMIT 2;

puis :

SQL
SELECT * FROM DEPT ORDER BY dno LIMIT 2,2;

3. Pour donner les noms et les salaires des employés :

SQL
SELECT enom, sal FROM EMP;

4. Pour donner toutes les professions des employés (sans doublons) :


SQL
SELECT DISTINCT prof FROM EMP;

5. Pour donner les dates d'embauche des techniciens :

SQL
SELECT dateemb FROM EMP WHERE prof = 'technicien';

6. Pour faire le produit cartésien entre EMP et DEPT :

SQL
SELECT * FROM EMP, DEPT;

Notez que le produit cartésien peut générer un grand nombre de résultats et qu'il est souvent
préférable de spécifier des critères de jointure pour réduire le nombre de résultats.

7- SELECT enom, dnom FROM EMP, DEPT WHERE EMP.dno = DEPT.dno;


8- SELECT eno FROM EMP, DEPT WHERE EMP.dno = DEPT.dno AND DEPT.ville = 'Boston';
9- SELECT enom FROM EMP, DEPT WHERE EMP.eno = DEPT.dir AND DEPT.dno IN (1,3);
10- SELECT DISTINCT EMP.enom FROM EMP, DEPT WHERE EMP.dno = DEPT.dno AND DEPT.dno
IN (SELECT dno FROM EMP WHERE prof = 'ingénieur');
11- SELECT enom, sal FROM EMP WHERE sal > ANY(SELECT sal FROM EMP WHERE prof =
'ingénieur');
12- SELECT EMP.enom, DIR.enom FROM EMP, DEPT, EMP DIR WHERE EMP.dno = DEPT.dno AND
DEPT.dir = DIR.eno;
13- SELECT enom, prof, sal FROM EMP ORDER BY prof ASC, sal DESC;

14- SELECT AVG(sal) FROM EMP;


15- SELECT COUNT(*) FROM EMP, DEPT WHERE EMP.dno = DEPT.dno AND
DEPT.dnom = 'Production';
16- SELECT dno, MAX(sal) FROM EMP GROUP BY dno;
17- SELECT prof, AVG(sal) FROM EMP GROUP BY prof;
18- SELECT AVG(sal) FROM EMP GROUP BY prof HAVING AVG(sal) =
MIN(AVG(sal));
19- SELECT DEPT.dnom FROM DEPT, EMP WHERE DEPT.ville = 'Boston' AND
EMP.dno = DEPT.dno GROUP BY DEPT.dno HAVING COUNT(*) > 10;
20- SELECT EMP.ename, EMP.sal FROM EMP WHERE EMP.sal = (SELECT
MAX(sal) FROM EMP WHERE EMP.dno = dno);
21- SELECT EMP.ename, 100*EMP.sal/(SELECT MAX(sal) FROM EMP WHERE
EMP.dno = dno) FROM EMP;
22- SELECT ename, sal FROM EMP WHERE eno NOT IN (SELECT dir FROM DEPT);
23- SELECT ename, sal FROM EMP WHERE sal < ALL(SELECT sal FROM EMP
WHERE prof = 'ingenieur');

Vous aimerez peut-être aussi