Telechargé par mourabitiyoussef

444121661-CORRIGE-REVISION5

publicité
EXERCICE
Soit la Base de Données PERSONNEL composée des relations suivantes :
EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, #DEPTNO)
DEPT (DEPTNO, DNAME, LOC)
Clés primaires
Clés étrangères#
MGR est le numéro d'employé (EMPNO) du manager de l'employé courant
TABLE EMP
EMPNO
7369
7499
7521
7566
7654
7698
7782
7839
7844
7876
7900
7902
7934
ENAME
BOUNKHALA
KHEROUA
GOURARI
MAAMAR
OULD SAADI
BENYETTOU
HACHEMANI
AMEZIANE
RAHMOUNI
DEKHISSI
HAMOUCHE
LOUHIBI
LAKEHAL
TABLE
DEPTNO
10
20
30
40
DEPT
JOB
CLERK
SALESMAN
SALESMAN
MANAGER
SALESMAN
MANAGER
MANAGER
PRESIDENT
SALESMAN
CLERK
CLERK
ANALYST
CLERK
DNAME
ACCOUNTING
RESEARCH
SALES
OPERATIONS
MGR
7902
7698
7698
7839
7698
7839
7839
7698
7788
7698
7566
7782
HIREDATE
17-DEC-2010
20-FEB-2011
22-FEB-2011
02-APR-2011
28-SEP-2011
01-MAY-2011
09-JUN-2011
17-NOV-2011
08-SEP-2011
23-SEP-2017
03-DEC-2011
03-DEC-2011
23-JAN-2012
SAL
80 000
160 000
125 000
295 000
125 000
285 000
245 000
500 000
150 000
110 000
95 000
300 000
130 000
COMM
30 000
50 000
140 000
DEPTNO
20
30
30
20
30
30
10
10
30
20
30
20
10
LOC
ALGER
ORAN
CONSTANTINE
ANNABA
Création de la base de données
1. créer les tables EMP et DEPT
2. Remplir la table DEPT avec des commandes INSERT INTO
3. Dans EMP, ajouter les nouveaux employés
<7369,'TALEB','MANAGER'7839,'17-NOV-2011,350 000,60000,10>;
<7657,'TALEB','MANAGER'7839,'17-NOV-2011,350 000,60000,50>;
<7657,'TALEB','MANAGER'7000,'17-NOV-2011,350 000,60000,10>;
<7657,'TALEB','MANAGER'7839,'17-NOV-2011,350 000,60000,10>;
Remarques?
INSERT INTO EMP VALUES
(7657,'TALEB', 'MANAGER', 7839, '17-NOV-2011', 350000, 60000, 10)
Mise à jour de la base de données
1.Dans EMP ajouter une colonne "observation" de 20 caractères
ALTER TABLE EMP ADD OBSERVATION CHAR(20)
2. Dans DEPT renommer la colonne LOC en LOCATION
ALTER TABLE DEPT CHANGE LOC LOCATION CHAR(20)
3. Dans EMP supprimer la colonne Observation
ALTER TABLE EMP DROP OBSERVATION
4. Changer la LOCalisation du département SALES de Constantine
à SETIF
UPDATE DEPT SET LOC='SETIF' WHERE DNAME=CONSTANTINE
5. Dans EMP augmenter de 10% le SALaire des vendeurs
(SALESMAN) dont la COMMission est supérieur à 50% du salaire
UPDATE EMP SET SAL+SAL*1,1 WHERE COMM>0.5 * SAL
6. Dans EMP, donner aux employés en poste avant le 01/01/2012
(HIREDATE) une commission égale à la moyenne des
commissions.
UPDATE EMP SET COMM=(SELECT AVG (COMM) FROM EMP
WHERE HIREDATE <01-JAN-2012'
7. Dans DEPT, supprimer le département n°20 (DEPTNO)
DELETE FROM DEPT WHERE DEPTNO=20
8. Supprimer toutes les données en conservant la table EMP
TRUNCATE TABLE EMP
9. Supprimer la table DEPT.
DROP TABLE DEPT
Interrogation de la base de données
Exprimer en SQL les requêtes suivantes/
1. Salaire moyen par fonction (sans tenir compte des commissions)
SELECT JOB, AVG(SAL) FROM EMP GROUP BY JOB
2. Total des salaires du département SALES
SELECT SUM(SAL) FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO
AND DNAME='SALES'
3. Nom, fonction et salaire de l'employé qui a le salaire le
plus grand
SELECT ENAME, JOB, SAL FROM EMP
WHERE SAL=(SELECT MAX(SAL) FROM EMP)
4. Nom des employés qui gagnent plus que MAAMAR
SELECT ENAME FROM EMP WHERE SAL >(SELECT SAL FROM EMP
WHERE ENAME='MAAMAR')
5. Nom des employés qui ont le même manger que HACHEMANI
SELECT ENAME FROM EMP WHERE MGR =(SELECT MGR FROM EMP
WHERE ENAME='HACHEMANI')
Téléchargement