Vous êtes sur la page 1sur 3

AIME ZAHUI

TD : Requêtes SQL

Exprimer toutes les requêtes suivantes en langage SQ

1. Pour donner tous les tuples de DEPT

SELECT * FROM DEPT;

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

SELECT * FROM DEPT ORDER BY dno LIMIT 2 ;


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

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

SELECT enom, sal FROM EMP ;

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

SELECT DISTINCT prof FROM EMP;

5. Pour donner les dates d'embauche des techniciens

SELECT dateemb FROM EMP WHERE prof = 'technicien’ ;

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

SELECT * FROM EMP, DEPT;

7- Donner les noms des employés et les noms de leur département

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

8- Donner les numéros des employés travaillant à Boston

SELECT eno FROM EMP, DEPT WHERE EMP.dno = DEPT.dno AND DEPT.ville = 'Boston';

9- Donner les noms des directeurs des départements 1 et 3

SELECT enom FROM EMP, DEPT WHERE EMP.eno = DEPT.dir AND DEPT.dno IN (1,3);

10- Donner les noms des employés travaillant dans un département avec au moins un
ingénieur

SELECT DISTINCT EMP.enom FROM EMP, DEPT WHERE EMP.dno = DEPT.dno AND DEPT.dno
IN (SELECT dno FROM EMP WHERE prof = 'ingénieur');

1
AIME ZAHUI

11- Donner le salaire et le nom des employés gagnant plus qu'un (au moins un) ingénieur

SELECT enom, sal FROM EMP WHERE sal > ANY(SELECT sal FROM EMP WHERE prof =
'ingénieur');

12- Donner les noms des employés et les noms de leurs directeurs de département

SELECT EMP.enom, DIR.enom FROM EMP, DEPT, EMP DIR WHERE EMP.dno = DEPT.dno AND
DEPT.dir = DIR.eno;

13- Donner les noms, emplois et salaires des employés par emploi croissant, et pour chaque
emploi, par salaire décroissant

SELECT enom, prof, sal FROM EMP ORDER BY prof ASC, sal DESC;

14- Donner le salaire moyen des employés

SELECT AVG(sal) FROM EMP;

15- Donner le nombre d'employés du département Production

SELECT COUNT(*) FROM EMP, DEPT WHERE EMP.dno = DEPT.dno AND DEPT.dnom =
'Production';

16- Donner les numéros de département et leur salaire maximum

SELECT dno, MAX(sal) FROM EMP GROUP BY dno;

17- Donner les professions et leur salaire moyen

SELECT prof, AVG(sal) FROM EMP GROUP BY prof;

18- Donner le salaire moyen de la profession qui a le salaire moyen le plus bas

SELECT AVG(sal) FROM EMP GROUP BY prof HAVING AVG(sal) = MIN(AVG(sal));

19- Donner les noms des départements de Boston qui ont plus de dix employés

SELECT DEPT.dnom FROM DEPT, EMP WHERE DEPT.ville = 'Boston' AND EMP.dno = DEPT.dno
GROUP BY DEPT.dno HAVING COUNT(*) > 10;

20- Donner les noms des employés ayant le salaire maximum de chaque département

SELECT EMP.ename, EMP.sal FROM EMP WHERE EMP.sal = (SELECT MAX(sal) FROM EMP
WHERE EMP.dno = dno);

21- Les noms des employés et leur salaire exprimé en pourcentage du salaire maximum

2
AIME ZAHUI

SELECT EMP.ename, 100*EMP.sal/(SELECT MAX(sal) FROM EMP WHERE EMP.dno = dno)


FROM EMP;

22- Donner le nom des employés qui ne sont pas directeurs

SELECT ename, sal FROM EMP WHERE eno NOT IN (SELECT dir FROM DEPT);

23- Donner le salaire et le nom des employés gagnant moins que tous les ingénieurs

SELECT ename, sal FROM EMP WHERE sal < ALL(SELECT sal FROM EMP WHERE prof =
'ingenieur');

Vous aimerez peut-être aussi