Professional Documents
Culture Documents
Script Du TP
Script Du TP
ALTER TABLE Departement ADD FOREIGN KEY (matri-emp) REFERENCES Employe (matri-emp);
ALTER TABLE Projet ADD FOREIGN KEY (code-dept) REFERENCES Departement (code-dept);
ALTER TABLE Projet ADD FOREIGN KEY (matri-emp) REFERENCES Employe(matri-emp);
ALTER TABLE Employe ADD FOREIGN KEY (code-dept) REFERENCES Departement(code-dept);
ALTER TABLE Employe ADD FOREIGN KEY (code-bur) REFERENCES Bureau(code-bur);
ALTER TABLE Employe ADD FOREIGN KEY (code-dept) REFERENCES Departement(code-dept);
ALTER TABLE Employe ADD FOREIGN KEY (num-tel) REFERENCES Telephone(num-tel);
ALTER TABLE Bureau ADD FOREIGN KEY (code-dept) REFERENCES Departement(code-dept);
ALTER TABLE Telephone ADD FOREIGN KEY (code-bur) REFERENCES Bureau(code-bur);
ALTER TABLE Tache ADD FOREIGN KEY (code-proj) REFERENCES Projet(code-proj);
ALTER TABLE Effectuer ADD FOREIGN KEY (matri-emp) REFERENCES Employe (matri-emp);
ALTER TABLE Effectuer ADD FOREIGN KEY (code-tc) REFERENCES Tache (code-tc);
1)Lister pour chaque d�partement, la liste des projets g�r�s dans le d�partement et
pour chaque projet son responsable (code-dept, lib-dept, code-proj, budget-proj,
nom-emp)
SELECT D.code_dept, lib_dept, code_proj, budget_proj, nom_emp
FROM Employe E, Departement D, Projet P
WHERE E.matri_emp=P.matri-emp AND D.code_dept=P.code_dept;
2)Donner pour chaque d�partement les employ�s qui y travaillent et les bureaux
qu'ils occupent (num-dept, lib-dept, nom-emp, lib-bur, num-tel)
SELECT D.code_dept, lib-dept, nom_emp, lib_bur
FROM Bureau B, Departement D, Employe E
WHERE B.code_bur=E.code_bur AND D.code_dept=E.code_dept;
5)Lister pour chaque employ� les taches r�alis�es dans les projets des d�partements
(nom_emp, code_tc, nbre_heures, code_proj, lib-proj, code-dept)
SELECT nom_emp, T.code_tc, nbre_heures, P.code_proj, lib_proj
FROM Projet P, Tache T, Employe E, Executer ET
WHERE P.code_proj=T.code_proj AND T.code_tc=ET.code_tc AND
ET.matri_emp=E.matri_emp;
6)Lister les projets ou 'NDONG' et 'MAKAYA' ont particip�s ensemple dans ces
projets (code_proj, lib_proj)
SELECT P.code_proj, lib_proj
FROM Projet P, Tache T, Executer ET, Employe E
WHERE nom_emp='MAKAYA' AND ET.matri_emp=E.matri_emp AND ET.code_tc=T.code_tc AND
P.code_proj=T.code_proj
INTERSECT
SELECT P.code_proj, lib_proj
FROM Projet P, Tache T, Executer ET, Employe E
WHERE nom_emp='NDONG' AND ET.matri-emp=E.matri_emp AND ET.code_tc=T.code-tc AND
P.code_proj=T.code_proj;
8)Lister les projets qui ont des budgets sup�rieurs � ceux de leur d�partement
(code_proj, budget_proj, code_dept, budget_dept)
SELECT P.code_proj, budget_proj, D.code_dept, budget_dept
FROM Projet P, Departement D
WHERE P.code_dept=D.code_dept AND budget_proj>budget_dept;
9)Indiquez les t�l�phones qui se trouvent dans chaque bureau et les employ�s qui
les utilisent (code_bur, lib_bur, num_tel, nom-emp)
SELECT B.code-bur, lib_bur, TEL.num_tel, nom_emp
FROM Bureau B, Telephone TEL, Employe E
WHERE B.code_bur=TEL.code_bur AND TEL.num_tel=E.num_tel;
10)Indiquer les employ�s qui ont travaill�s dans les projets ou 'OBAME' �tait le
responsable (code_proj, nom_emp, prenom_emp)
SELECT T.code_proj, EM.nom_emp, EM.prenom_emp
FROM Emloye E, Projet P, Tache T, Executer ET, Employe EM
WHERE EM.matri_emp=ET.matri_emp AND ET.code_tc=T.code_tc AND
T.code_proj=P.code_proj AND P.matri_emp=E.matri_emp AND nom_emp='OBAME';
11)Lister dans chaque departement les employ�s qui ont le plus petit salaire, le
salaire maxi et les salaires inf � la moyenne (code-dept, lib-dept, nom-emp,
prenom-emp, salaire-emp)
i)Le plus petit salaire
SELECT D.code-dept, lib_dept, nom_emp, prenom_emp, salaire_emp
FROM Employe E, Departement D
WHERE salaire-emp=(SELECT MIN(salaire-emp) FROM Employe) AND
D.code_dept=E.code_dept;
ii)Le salaire maxi
SELECT D.code_dept, lib_dept, nom_emp, prenom_emp
FROM Employe E, Departement D
WHERE salaire_emp=(SELECT MAX(salaire_emp) FROM Employe) AND
D.code_dept=E.code_dept;
iii)Les salaires inf � la moyenne
SELECT D.code_dept, lib_dept, nom_emp, prenom_emp, salaire_emp
FROM Employe E, Departement D
WHERE salaire_emp=(SELECT AVG(salaire_emp) FROM Employe) AND
D.code_dept=E.code_dept;
12)Lister dans chaque d�artement les employ�s qui gagnent plus que le responsable
du d�partement (nom_emp, salaire_emp)
SELECT nom_emp, salaire_emp
FROM Departement D, Employe E
WHERE D.code_dept=E.code_dept AND salaire_emp>(SELECT salaire_emp FROM Emloye E
WHERE D.matri_emp=E.matri_emp);
17)Lister les d�partements qui n'ont pas g�r� de projets (code_dept, lib_dept)
SELECT D.code_dept, lib_dept
FROM Departement D
MINUS
(
SELECT D.code_dept, lib_dept
FROM Departement D, Projet P
WHERE D.code_dept=P.code_dept);
18)Lister les employ�s qui n'ont pas particip� � la r�alisation des projets de leur
d�partement (code_dept, lib_dept, nom_emp, prenom_emp)
SELECT D.code_dept, lib_dept, nom_emp, prenom_emp
FROM Departement D, Employe E
WHERE D.code_dept=E.code_dept AND matri_emp NOT IN(SELECT matri_emp FROM Emloye E,
Tache T, Executer ET WHERE E.matri_emp=ET.matri_emp AND T.code_tc=ET.code_tc AND
E.code_dept=D.code_dept);
22)Lister les employ�s qui ont particip� � tous les projets r�alis�s dans leur
d�partement (code_dept, lib_dept, nom_emp, nbre_proj_part, nbre_proj_dept)
SELECT D.code_dept, lib_dept, nom_emp, COUNT(A.code_proj) as nbre-proj_part,
COUNT(B.code_proj) as nbre_proj_dept
FROM Departement D, Projet A, Projet B, Tache T, Executer ET, Employe E
WHERE D.code-dept=E.code_dept AND ET.matri_emp=E.matri_emp AND T.code_tc=ET.code_tc
AND A.code_proj=T.code_proj AND A.code_dept=D.code_dept AND
COUNT(A.code_proj)=COUNT(B.code_proj);