Vous êtes sur la page 1sur 2

TP 1 BDD : CONSTRAINT pkDEPT PRIMARY KEY(noDept) ; ALTER

TABLE PROJET ADD CONSTRAINT pkPrj PRIMARY


KEY(codePrj); ALTER TABLE PARTICIPATION ADD
QUESTION 1: CONSTRAINT pkPrt PRIMARY KEY(codePrj).

CREATE TABLE EMP( noEmp number(4), nom QUESTION 6:

varchar(15), poste varchar(20), dateEmp date, DELETE FROM PARTICIPATION WHERE codeprj
sup number(4), salaire number(8,3), comm IN( SELECT codeprj FROM PARTICIPATION GROUP BY
codePrj HAVING COUNT(*) >1 ); DELETE FROM EMP1
number(8,3), noDept number(5) ); CREATE WHERE noEmp IN( SELECT noEmp FROM EMP1 GROUP
TABLE DEPT( noDept number(5), nom BY noEmp HAVING COUNT(*) >1 ); /* ou */ DELETE
FROM PARTICIPATION1 WHERE (role='Commercial');
varchar(15), lieu varchar(20) ); CREATE TABLE DELETE FROM PARTICIPATION1 WHERE
PROJET( codePrj varchar(4), nom (role='Tresorier');
varchar(15) ); CREATE TABLE QUESTION 7:
PARTICIPATION( noEmp number(4), codePrj
ALTER TABLE PARTICIPATION ADD CONSTRAINT fkPrt
varchar(4), role varchar(15) ); FOREIGN KEY(codePrj) REFERENCES PROJET(codePrj)
ADD CONSTRAINT fkPrt2 FOREIGN KEY(noEmp)
QUESTION 2: REFERENCES EMP(noEmp); ALTER TABLE EMP ADD
CONSTRAINT fkEmp1 FOREIGN KEY(sup) REFERENCES
INSERT INTO EMP VALUES EMP(noEmp) ADD CONSTRAINT fkEmp2 FOREIGN
KEY(noDept) REFERENCES DEPT(noDept);
(1020,'Belhadj','Commercial','06/01/02',1050,
6000,2000,20); INSERT INTO EMP VALUES QUESTION 8:

(1030,'Zarrouk','DAF','01/06/02',1050,10000,5 ALTER TABLE EMP ADD (nbProjets NUMBER(2)); ALTER


000,10); INSERT INTO EMP VALUES TABLE DEPT ADD (NbEmps NUMBER(2)); ALTER TABLE
PROJET ADD (durée NUMBER(2));
(1040,'Kallel','Secretaire','02/03/01',1030,250
0,NULL,10); INSERT INTO EMP VALUES QUESTION 9:

(1050,'Zouari','DG','01/01/99',NULL,20000,800 DESC EMP; SELECT * FROM DEPT; DESC DEPT; DESC


0,20); INSERT INTO DEPT PROJET; SELECT * FROM PROJET;

VALUES(10,'Financier','Sousse'); INSERT INTO QUESTION 10:


DEPT VALUES(20,'Personnel','Tunis'); INSERT
ALTER TABLE EMP MODIFY nom VARCHAR(30); ALTER
INTO DEPT VALUES(30,'Adminastratif','Sfax'); TABLE PROJET MODIFY codePrj VARCHAR(3); ALTER
INSERT INTO DEPT TABLE PROJET MODIFY nom VARCHAR(14);

VALUES(40,'Juridique','Sousse'); INSERT INTO QUESTION 11:


PROJET VALUES('P01','Sports'); INSERT INTO
Elle n'est pas possible car il existe un attribut deja enregistré
PROJET VALUES('P02','Commerce'); INSERT dans la table "commercialisation" depasse 14 caracteres.
INTO PROJET VALUES('P03','Conception'); "impossible de diminuer la largeur de colonne : certaines valeurs
sont trop élevées"
INSERT INTO PARTICIPATION
VALUES(1020,'P02','Chef'); INSERT INTO QUESTION 12:

PARTICIPATION DESC PROJET; DESC EMP;


VALUES(1050,'P02','Tresorier'); INSERT INTO
QUESTION 11:
PARTICIPATION
VALUES(1030,'P01','Programmeur'); INSERT Q1/ SELECT noEmp,nom FROM EMP;

INTO PARTICIPATION Q2/ SELECT noDept,COUNT(*) "nombre d emp de dep"


VALUES(1040,'P01','Commercial'); FROM EMP GROUP BY noDept; Q3/ SELECT
noEmp,codePrj,COUNT(*) "nombre d emp de projet" FROM
QUESTION 4: Participation GROUP BY noEmp,codePrj; Q4/ SELECT nom
FROM EMP WHERE SUBSTR(nom,2,1)='e'; Q5/ SELECT
QUESTION 5: poste FROM EMP WHERE salaire>13000; Q6/ SELECT nom
FROM EMP WHERE salaire<comm; Q7/ SELECT nom FROM
ALTER TABLE EMP ADD CONSTRAINT pkEmp EMP WHERE comm IS NULL;
PRIMARY KEY(noEmp) ; ALTER TABLE DEPT ADD
QUESTION 14:

Q1/ INSERT INTO DEPT VALUES(50,'Comptabilité','Tunis');


Q2/ INSERT INTO DEPT VALUES(60,'Direction',null);

Q3/ UPDATE DEPT SET lieu='Sousse' WHERE noDept=60;


Q4/ UPDATE DEPT SET nom='Les PDG' WHERE noDept=60;
Q5/ UPDATE EMP SET salaire=salaire + (salaire*10)/100
WHERE nodept=10; Q6/ INSERT INTO EMP
VALUES(8010,'M.Pascal','Commercial','26/02/2023',null,1200,n
ull,30);

QUESTION 15:

Q1/ SELECT EMP.nom,DEPT.lieu FROM EMP join DEPT ON


EMP.noDept=DEPT.noDept;

Q2/ SELECT DEPT.nom,DEPT.lieu,EMP.nom FROM DEPT


join EMP ON DEPT.noDept=EMP.noDept WHERE comm IS
NOT NULL;

Q3/ SELECT t1.nom "superieur" ,t2.nom FROM EMP t1 JOIN


EMP t2 ON t1.noEmp=t2.sup ;

Q4/ SELECT PROJET.nom FROM PROJET JOIN


PARTICIPATION USING(codePrj) JOIN EMP
USING(noEmp) JOIN DEPT USING(noDept) WHERE
DEPT.lieu='Sousse' ;

Vous aimerez peut-être aussi