12.07.2015 Views

TP 5 - CORRIGE

TP 5 - CORRIGE

TP 5 - CORRIGE

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>TP</strong> 5 - <strong>CORRIGE</strong>Exercice 2 : Modification et création de la BD1. Faites une augmentation de salaire de 20% à tous les employés du département 20Select *From empWhere ND = 20;+------+-------+---------+------------+---------+------+----+--------+| NE | NOM | JOB | DATEMB | SAL | COMM | ND | NEchef |+------+-------+---------+------------+---------+------+----+--------+| 7369 | SMITH | CLERK | 1980-12-17 | 800.00 | NULL | 20 | 7902 || 7566 | JONES | MANAGER | 1981-04-02 | 2975.00 | NULL | 20 | 7839 || 7788 | SCOTT | ANALYST | 1982-12-09 | 3000.00 | NULL | 20 | 7566 || 7876 | ADAMS | CLERK | 1983-01-12 | 1100.00 | NULL | 20 | 7788 || 7902 | FORD | ANALYST | 1981-12-03 | 3000.00 | NULL | 20 | 7566 |+------+-------+---------+------------+---------+------+----+--------+5 rows in set (0.01 sec)Update empset sal=sal*1.2where ND=20;2. Augmenter la commission de 200 à tous les vendeurs de Chicago. Commencer par faire unerequêtes de recherche des tuples concernés.select E.NE, E.nom, E.job, E.comm, D.villefrom emp E, dept Dwhere E.ND=D.NDand D.ville="Chicago"and E.job="Salesman";+------+--------+----------+---------+---------+| NE | nom | job | comm | ville |+------+--------+----------+---------+---------+| 7499 | ALLEN | SALESMAN | 300.00 | CHICAGO || 7521 | WARD | SALESMAN | 500.00 | CHICAGO || 7654 | MARTIN | SALESMAN | 1400.00 | CHICAGO || 7844 | TURNER | SALESMAN | 0.00 | CHICAGO |+------+--------+----------+---------+---------+4 rows in set (0.00 sec)update emp E, dept Dset E.comm=E.comm+200where E.ND=D.NDand D.ville="Chicago"and E.job="Salesman";3. Essayer de créer l’employé Dupond dont le numéro est 7839. Quel problème cela pose ?Essayer ensuite en le mettant dans le département 10. Quel problème cela pose ?Insert into emp (NE, nom) values (7839,'DUPOND');ERROR 1364 (HY000): Field 'ND' doesn't have a default valueInsert into emp (NE, nom, ND) values (7839,'DUPOND', 10);ERROR 1062 (23000): Duplicate entry '7839' for key 14. Essayer de supprimer le département 10. Quel problème cela pose ?


Il y a des gens qui travaillent dans le département 10. On ne peut donc pas le supprimer.delete from dept where nd=10;ERROR 1451 (23000): Cannot delete or update a parent row: a foreign keyconstraint fails (`empdept/emp`, CONSTRAINT `emp_ibfk_1` FOREIGN KEY (`ND`)REFERENCES `5. Essayer de supprimer l’employé n° 7698. Quel problème cela pose ?Il y a des gens qui travaillent sous la responsabilité du 7698. On ne peut donc pas le suppprimer.delete from emp where ne=7698;6.7.ERROR 1451 (23000): Cannot delete or update a parent row: a foreign keyconstraint fails (`empdept/emp`, CONSTRAINT `emp_ibfk_2` FOREIGN KEY(`NEchef`) REFERENCES `emp` (`NE`))8. Créer l’employé Dupond . Son numéro est le 8000. Il est MANAGER. Sa date d’embaucheest le 1 février 2007. Son salaire est 2500. Il n’a pas de commission. Son supérieurhiérarchique est le Président. Il travaille dans le département 30.Turner (7844) et James (7900) passe sous sa responsabilité.Insert into emp values (8000,'DUPOND','MANAGER','1-02-07',2450,NULL, 30,7839);update empset NEchef=8000where NE in (7844, 7900);9. Dupond et les employés sous sa responsabilité travaille désormais dans le département 40.Ecrivez le script de mise à jour de la base de données.Select * from empWhere NE=8000 or Nechef=8000;Update empSet ND=40Where NE=8000 or Nechef=8000;10. Blake (7698) démissionne. Son département est supprimé. Tous les employés sous saresponsabilité passe sous celle de Dupond et dans son département. Ecrivez le script de miseà jour de la base de données.Select *from empwhere NEchef = 7698;+------+--------+----------+------------+---------+---------+----+--------+| NE | NOM | JOB | DATEMB | SAL | COMM | ND | NEchef |+------+--------+----------+------------+---------+---------+----+--------+| 7499 | ALLEN | SALESMAN | 1981-02-20 | 1600.00 | 500.00 | 30 | 7698 || 7521 | WARD | SALESMAN | 1981-02-22 | 1250.00 | 700.00 | 30 | 7698 || 7654 | MARTIN | SALESMAN | 1981-09-28 | 1250.00 | 1600.00 | 30 | 7698 |+------+--------+----------+------------+---------+---------+----+--------+3 rows in set (0.00 sec)update empset NEchef=8000, ND=40where NEchef = 7698;delete from emp


where NE = 7698;delete from deptwhere ND = 30;11. Blake (7698) démissionne. Son département est supprimé. Tous les employés sous saresponsabilité passe sous celle de Dupond et dans son département. Ecrivez le script de miseà jour de la base de données.Insert into dept values (NULL, ‘INFO’, ‘PARIS’);Select * from dept;+----+------------+----------+| ND | NOM | VILLE |+----+------------+----------+| 10 | ACCOUNTING | NEW YORK || 20 | RESEARCH | DALLAS || 40 | OPERATIONS | BOSTON || 41 | INFO | PARIS |+----+------------+----------+4 rows in set (0.00 sec)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!