Vous êtes sur la page 1sur 6

Institut Suprieur des Etudes Technologiques de Bizerte

2017

Anne universitaire 2016-

Module : Bases de Donnes


Correction TP
1. Ecrire en SQL, les diffrentes instructions pour la cration des
diffrentes tables de la base de donnes. Dfinir les contraintes.

CREATE TABLE SERVICES (


SRVNO SMALLINT NOT NULL,
SRVNOM VARCHAR(30),
PRIMARY KEY (SRVNO));
CREATE TABLE PROJETS (
PROJNO INT NOT NULL,
PROJLIB CHAR(11) NOT NULL UNIQUE,
SRVNO SMALLINT NOT NULL,
PRIMARY KEY (PROJNO),
FOREIGN KEY (SRVNO) REFERENCES SERVICES ON UPDATE CASCADE);
CREATE TABLE EMPLOYES (
EMPNO SMALLINT NOT NULL,
EMPNOM VARCHAR(30),
EMPPREN VARCHAR(30),
EMPSEXE CHAR(1) CHECK(EMPSEXE IN (M,F)),
EMPSALAIRE DEC(8, 2),
EMPPRIME DEC(6, 2) DEFAULT 0 CHECK(EMPPPRIME < EMPSALAIRE/2),
SRVNO SMALLINT NOT NULL,
PRIMARY KEY (EMPNO),
FOREIGN KEY (SRVNO) REFERENCES SERVICES ON UPDATE CASCADE);
CREATE TABLE INTERVENIR (
PROJNO INT NOT NULL,
EMPNO SMALLINT NOT NULL,
NBHEURES SMALLINT NOT NULL DEFAULT 8,
PRIMARY KEY (PROJNO, EMPNO),
FOREIGN KEY (EMPNO) REFERENCES EMPLOYES ON UPDATE CASCADE,
FOREIGN KEY (PROJNO) REFERENCES PROJETS ON UPDATE CASCADE);

2. Insrer les donnes dans les tables.


INSERT INTO SERVICES VALUES() (voir TP)
.

- 1/6 -

Institut Suprieur des Etudes Technologiques de Bizerte


2017

Anne universitaire 2016-

3. Visualisation du contenu complet d'une table (Ex : EMPLOYES)


SELECT * FROM EMPLOYES;

4. Liste des N, noms et sexes des employs


SELECT EMPNO, EMPNOM, EMPSEXE FROM EMPLOYES;

5. Liste des N, noms et salaires des femmes


SELECT EMPNO, EMPNOM, EMPSALAIRE
FROM EMPLOYES WHERE EMPSEXE = F;
6. Liste des noms, salaires et N de services des employs affects aux services
1, 3 ou 6

SELECT EMPNOM, EMPSALAIRE, SRVNO


FROM EMPLOYES WHERE SRVNO IN (1, 3, 6);
7. Liste des N et noms des employs ayant une prime comprise entre
500 et 1000.
SELECT EMPNO, EMPNOM
FROM EMPLOYES
WHERE EMPPRIME BETWEEN 500 AND 1000;
8. Liste des N, noms et N de services des employs dont la premire
lettre du nom est D.
SELECT EMPNO, EMPNOM, SRVNO
FROM EMPLOYES WHERE EMPNOM LIKE D%;
9. Liste par ordre alphabtique des employs de sexe masculin: nom,
prnom et N.
SELECT EMPNOM, EMPPREN, EMPNO
FROM EMPLOYES

- 2/6 -

Institut Suprieur des Etudes Technologiques de Bizerte


2017

Anne universitaire 2016-

WHERE EMPSEXE = M
ORDER BY EMPNOM;
10. Liste des N, noms, prnoms et noms de services des employs qui
gagnent plus de 1000.

SELECT EMPNO, EMPNOM, EMPPREN, SRVNOM


FROM EMPLOYES, SERVICES
WHERE EMPSALAIRE > 10000
AND EMPLOYES.SRVNO = SERVICES.SRVNO
11. Moyenne
moyenne).

des

employs

par

service

(Numro

du

service

et

SELECT SRVNO, AVG(EMPSALAIRE)


FROM EMPLOYES
GROUP BY SRVNO;

12. Liste des noms et salaires des employs dont le salaire est suprieur
celui du salari N 11.

SELECT EMPNOM, EMPSALAIRE


FROM EMPLOYES
WHERE EMPSALAIRE > (SELECT EMPSALAIRE
FROM EMPLOYES
WHERE EMPNO = 11);
13. Liste des N et moyennes des salaires des services dont la moyenne
des salaires est infrieure la moyenne des salaires de la socit.

SELECT SRVNO, AVG(EMPSALAIRE)


FROM EMPLOYES
GROUP BY SRVNO
HAVING AVG(EMPSALAIRE) <
(SELECT AVG(EMPSALAIRE)
FROM EMPLOYES);
14. Liste des N et libells des projets avec les noms des services qui les
pilotent. Tri sur N.

- 3/6 -

Institut Suprieur des Etudes Technologiques de Bizerte


2017

Anne universitaire 2016-

SELECT PROJNO, PROJLIB, SRVNOM


FROM PROJETS, SERVICES
WHERE PROJETS.SRVNO = SERVICES.SRVNO
ORDER BY PROJNO;
15. Liste des libells des projets (par ordre alphabtique) dans lesquels
l'employ DESTIN intervient.

SELECT PROJLIB
FROM PROJETS, INTERVENIR, EMPLOYES
WHERE EMPNOM = DESTIN
AND INTERVENIR.EMPNO = EMPLOYES.EMPNO
AND PROJETS.PROJNO = INTERVENIR.PROJNO
ORDER BY PROJLIB ;

16. Liste des N des services, noms et N des employs masculins qui
ont une prime suprieure 800 . Tri sur le N de service et le nom
d'employ.

SELECT S.SRVNO, S.SRVNOM, E.EMPNO


FROM EMPLOYES E, SERVICES S
WHERE E.EMPPRIME > 800
AND E.SRVNO=S.SRVNO
AND EMPSEXE LIKE M
ORDER BY S.SRVNO, E.EMPNOM;
17. Pour les employs des services 1, 2 et 4, afficher N de service, nom,
prnom et le total salaire + prime. Tri sur service croissant et total
dcroissant.

SELECT SRVNO, EMPNOM, EMPPREN, EMPSALAIRE + EMPPRIME AS REVENU


FROM EMPLOYES
WHERE SRVNO IN (1, 2, 4)
ORDER BY SRVNO ASC, REVENU DESC;
18. Afficher le total des salaires de l'entreprise, le salaire le plus bas et le
salaire le plus haut.

- 4/6 -

Institut Suprieur des Etudes Technologiques de Bizerte


2017

Anne universitaire 2016-

SELECT SUM(EMPSALAIRE) AS TOTAL, MIN(EMPSALAIRE) AS MINIMUM,


MAX(EMPSALAIRE) AS MAXIMUM
FROM EMPLOYES ;
19.

Combien y a-t-il d'employs ?

SELECT COUNT(EMPNO) AS NBEMPL


FROM EMPLOYES;
20. Quelle est la moyenne des primes pour chaque service. On affichera
N, nom du service et moyenne.

SELECT SERVICES.SRVNO, SRVNOM, AVG(EMPPRIME) AS MOYPRIME


FROM EMPLOYES, SERVICES
WHERE EMPLOYES.SRVNO = SERVICES.SRVNO
GROUP BY SERVICES.SRVNO, SRVNOM;
21. Liste des libells des projets qui ont un nombre total d'heures
suprieur 120.

SELECT PROJLIB
FROM PROJETS, INTERVENIR
WHERE PROJETS.PROJNO = INTERVENIR.PROJNO
GROUP BY PROJLIB
HAVING SUM(NBHEURES) > 120;

22. Pour les employs intervenant plus de 20 heures au total, liste des
noms et prnoms avec le nombre total d'heures d'intervention. Tri
dcroissant sur le nombre d'heures.

SELECT EMPNOM, EMPPREN, SUM(NBHEURES) AS TOTHEURES


FROM EMPLOYES, INTERVENIR
WHERE EMPLOYES.EMPNO = INTERVENIR.EMPNO
GROUP BY EMPNOM, EMPPREN
HAVING SUM(NBHEURES) > 20
ORDER BY SUM(NBHEURES);

- 5/6 -

Institut Suprieur des Etudes Technologiques de Bizerte


2017

- 6/6 -

Anne universitaire 2016-

Vous aimerez peut-être aussi