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

				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)

				SELECT Numemp, nomem, nudep
				FROM Employe;

b)

				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.

				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.

				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.

				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.

				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)

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

b)

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

c)

				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)

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

b)

				SELECT Numemp, nomep
				FROM Employe
				WHERE Nudep = 10
				MINUS 
				SELECT Numemp, nomep
				FROM Employe
				WHERE Nudep = 10 AND (fonction = "Directeur" OR fonction = "Ouvrier");

c)

				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.

				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)

				SELECT nomep, fonction, salaire
				FROM Employe
				MINUS
				SELECT nomep, fonction, salaire
				FROM Employe
				WHERE salaire BETWEEN 12000 AND 14000;

b)

				SELECT nomep, fonction, salaire
				FROM Employe
				WHERE Numemp NOT IN
				(SELECT nomep, fonction, salaire
				FROM Employe
				WHERE salaire BETWEEN 12000 AND 14000;

c)

				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)

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

b)

				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.

				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.

				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.

				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.

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

Exercice #16

Donner le total des salaires et des commissions des vendeurs.

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

Exercice #17

Donner le revenu annuel moyen de tous les vendeurs.

				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.

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

Exercice #19

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

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

Exercice #20

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

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

Exercice #21

Donner les noms du département informatique.

				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.

				SELECT nomep
				FROM Employe, Departement
				WHERE nomdep = "Informatique" 
				AND Employe.numdep = Departement.numdep
				AND SALAIRE > 20000;


up