I) Données

Employe (Numemp, nomem, fonction, salaire, commission, nudep)

Departement (#nudep, nomdep, ville)

II) Exercices

Exercice #1

Donner la liste des employés du département 30

1
2
3
SELECT Numemp, nomem
FROM Employe
WHERE nudep = 30;

Exercice #2

Donner la liste des noms, numéros et département de tous les ouvriers.

a)

1
2
SELECT Numemp, nomem, nudep
FROM Employe;

b)

1
2
3
SELECT Numemp, nomem, nudep, nomdep
FROM Employe, Departement;
WHERE Employe.nudep = Departement.nudep;

Exercice #3

Donner la liste des noms des départements dont le numéro est supérieur à 20.

1
2
3
SELECT nomdep
FROM Departement
WHERE nudep > 20;

Exercice #4

Donner la liste des noms, salaires et commissions des employés dont la commission excède leur salaire.

1
2
3
SELECT nomep, salaire, commission
FROM Employe
WHERE commission > salaire;

Exercice #5

Donner la liste des noms et salaires des vendeurs du département 30 dont le salaire est plus grand ou égal à 21500.

1
2
3
SELECT nomep, salaire
FROM Employe
WHERE nudep = 30 AND >= 21500 AND fonction="Vendeur";

Exercice #6

Donner la liste des noms, fonctions et salaires des employés qui sont directeurs ou qui ont un salaire supérieur à 23000.

1
2
3
SELECT nomep, fonction, salaire
FROM Employe
WHERE fonction="Directeur" OR salaire > 23000;

Exercice #7

Donner la liste des employés directeurs et des ouvriers du département 10.

a)

1
2
3
SELECT Numemp, nomep
FROM Employe
WHERE Numdep = 10 AND (fonction = "Directeur" OR fonction = "Ouvrier");

b)

1
2
3
SELECT Numemp, nomep
FROM Employe
WHERE fonction = "Directeur" OR (fonction = "Ouvrier" AND nudep = 10);

c)

1
2
3
4
5
6
7
SELECT Numemp, nomep
FROM Employe
WHERE fonction = "Directeur"
UNION
SELECT Numemp, nomep
FROM Employe
WHERE fonction = "Ouvrier" AND Nudep = 10;

Exercice #8

Donner la liste des employés du département 10 qui ne sont ni directeurs ni ouvriers.

a)

1
2
3
SELECT Numemp, nomep
FROM Employe
WHERE Nudep = 10 AND (fonction <> "Ouvrier" AND <> "Directeur");

b)

1
2
3
4
5
6
7
SELECT Numemp, nomep
FROM Employe
WHERE Nudep = 10
MINUS
SELECT Numemp, nomep
FROM Employe
WHERE Nudep = 10 AND (fonction = "Directeur" OR fonction = "Ouvrier");

c)

1
2
3
4
5
6
SELECT Numemp, nomep
FROM Employe
WHERE Nudep = 10 AND Numemp NOT IN
(SELECT  Numemp
FROM Employe
WHERE fonction = "Ouvrier" OR fonction = "Directeur");

Exercice #9

Donner la liste des noms, fonctions et salaires des employés qui gagnent entre 12000 et 13000.

1
2
3
SELECT nomep, fonction, salaire
FROM Employe
WHERE salaire BETWEEN 12000 AND 13000;

Exercice #10

Donner la liste des noms, fonctions et salaires des employés dont le salaire n'est pas compris entre 12000 et 14000.

a)

1
2
3
4
5
6
SELECT nomep, fonction, salaire
FROM Employe
MINUS
SELECT nomep, fonction, salaire
FROM Employe
WHERE salaire BETWEEN 12000 AND 14000;

b)

1
2
3
4
5
6
SELECT nomep, fonction, salaire
FROM Employe
WHERE Numemp NOT IN
(SELECT nomep, fonction, salaire
FROM Employe
WHERE salaire BETWEEN 12000 AND 14000;

c)

1
2
3
SELECT nomep, fonction, salaire
FROM Employe
WHERE salaire < 12000 AND salaire > 14000;

Exercice #11

Donner la liste des noms, numéros de départements et fonctions des employés qui sont ouvriers, analystes ou vendeurs.

a)

1
2
3
SELECT nomep, fonction, numdep
FROM Employe
WHERE fonction IN ("Analyste", "Ouvrier", "Vendeur");

b)

1
2
3
SELECT nomep, fonction, numdep
FROM Employe
WHERE fonction = "Analyste" OR fonction = "Ouvrir" OR fonction = "Vendeur";

Exercice #12

Donner la liste des noms, fonctions et salaires des employés du département 30.
Ordonner la liste selon l'ordre croissant des salaires.

1
2
3
4
SELECT nomep, fonction, salaire
FROM Employe
WHERE nudep = 30
ORDER BY salaire;

Exercice #13

Donner la liste des noms, fonctions et salaires des employés du département 30.
Ordonner la liste selon l'ordre décroissant des salaires.

1
2
3
4
SELECT nomep, fonction, salaire
FROM Employe
WHERE nudep = 30
ORDER BY salaire DESC;

Exercice #14

Donner la liste des noms, fonctions et salaires des employés du département 30.
Ordonner la liste selon l'ordre croissant des fonctions et l'ordre décroissant des salaires.

1
2
3
4
5
SELECT nomep, fonction, salaire
FROM Employe
WHERE nudep = 30
ORDER BY salaire DESC
ORDER BY fonction ASC;

Exercice #15

Donner la moyenne des salaires des ouvriers.

1
2
3
SELECT AVG (salaire)
FROM Employe
WHERE fonction = "Ouvrier";

Exercice #16

Donner le total des salaires et des commissions des vendeurs.

1
2
3
SELECT SUM (salaire), SUM (commission)
FROM Employe
WHERE fonction = "Vendeur";

Exercice #17

Donner le revenu annuel moyen de tous les vendeurs.

1
2
3
SELECT AVG ((SUM (salaire) + SUM (commission)) * 12)
FROM Employe
WHERE fonction = "Vendeur";

Exercice #18

Donner le plus haut, le plus bas salaire et la différence entre les deux.

1
2
SELECT MAX (salaire), MIN  (salaire), MAX (salaire) - MIN (salaire)
FROM Employe;

Exercice #19

Donner le nombre d'employés du département 30.

1
2
3
SELECT COUNT (*)
FROM Employe
WHERE nudep = 30;

Exercice #20

Donner le nombre de fonctions occupées par les employés du département 20.

1
2
3
SELECT COUNT (fonction)
FROM Employe
WHERE nudep = 20;

Exercice #21

Donner les noms du département informatique.

1
2
3
4
SELECT nomep
FROM Employe, Departement
WHERE nomdep = "Informatique"
AND Employe.numdep = Departement.numdep;

Exercice #22

Donner les noms des employés dont le salaire est supérieur à 20000 du département informatique.

1
2
3
4
5
SELECT nomep
FROM Employe, Departement
WHERE nomdep = "Informatique"
AND Employe.numdep = Departement.numdep
AND SALAIRE > 20000;


up