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> 2 - <strong>CORRIGE</strong><br />
Création, modification, suppression de tuples<br />
1. Faire une augmentation de salaire de 20% à tous les employés du département 20.<br />
Commencer par faire une requêtes de recherche des tuples concernés.<br />
Select *<br />
From emp<br />
Where ND = 20;<br />
Update emp<br />
set sal=sal*1.2<br />
where ND=20;<br />
2. Augmenter la commission de 200 à tous les vendeurs de Chicago. Commencer par faire une<br />
requêtes de recherche des tuples concernés.<br />
select E.NE, E.nom, E.job, E.comm, D.ville<br />
from emp E, dept D<br />
where E.ND=D.ND<br />
and D.ville=’CHICAGO’<br />
and E.job=’SALESMAN’;<br />
update emp E, dept D<br />
set E.comm=E.comm+200<br />
where E.ND=D.ND<br />
and D.ville=’CHICAGO’<br />
and E.job=’SALESMAN’;<br />
3. Essayer de créer l’employé Dupond dont le numéro d’employé est 7839. On n’a pas plus<br />
d’informations le concernant. Quel problème cela pose-t-il ?<br />
Insert into emp (NE, nom) values (7839,'DUPOND');<br />
ERROR<br />
Cette requête est refusée car on n’a pas donné de valeur pour ‘ND’ qui est déclaré en « NOT<br />
NULL », c’est-à-dire obligatoire.<br />
4. Essayer de créer l’employé Dupond dont le numéro d’employé est 7839 et qui travaille dans<br />
le département 10. Quel problème cela pose-t-il ? Comment pouvez-vous le résoudre ?<br />
Insert into emp (NE, nom, ND) values (7839,'DUPOND', 10);<br />
ERROR<br />
Cette requête est refusée car le 7839 existe déjà et NE est la clé primaire, donc doit être unique.<br />
Pour résoudre le problème, on peut donner un autre n°, par exemple le 1 :<br />
Insert into emp (NE, nom, ND) values (1,'DUPOND', 10);<br />
5. Essayer de supprimer le département 10. Quel problème cela pose-t-il ?<br />
delete from dept where nd=10;<br />
ERROR
Il y a des gens qui travaillent dans le département 10. On ne peut donc pas le supprimer.<br />
6. Essayer de supprimer l’employé n° 7698. Quel problème cela pose-t-il ?<br />
delete from emp where ne=7698;<br />
ERROR<br />
Il y a des gens qui travaillent sous la responsabilité du 7698. On ne peut donc pas le suppprimer.<br />
7. Créer l’employé DUPOND . Son numéro est le 8000. Il est MANAGER. Sa date<br />
d’embauche est le 1 février 2007. Son salaire est 2500. Il n’a pas de commission. Son<br />
supérieur hiérarchique est le Président. Il travaille dans le département 30. TURNER (7844)<br />
et JAMES (7900) passe sous sa responsabilité. Ecrivez le script de mise à jour de la base de<br />
données. Exécuter ce script.<br />
Insert into emp values (8000,'DUPOND','MANAGER','1-02-07',2450,NULL, 30,<br />
7839);<br />
update emp<br />
set NEchef=8000<br />
where NE in (7844, 7900);<br />
8. DUPOND et les employés sous sa responsabilité travaille désormais dans le département 40.<br />
Ecrivez le script de mise à jour de la base de données.<br />
Select * from emp<br />
Where NE=8000 or Nechef=8000;<br />
Update emp<br />
Set ND=40<br />
Where NE=8000 or Nechef=8000;<br />
9. BLAKE (7698) démissionne. Tous les employés sous sa responsabilité passent sous celle de<br />
DUPOND (employé n° 8000) et dans son département. Son département est supprimé. Tous<br />
les employés de son département passent dans le département de DUPOND. Ecrivez le<br />
script de mise à jour de la base de données. Dans le script on commencera par lister tous les<br />
subordonnés de BLAKE et tous les employés de son département.<br />
Tous les subordonnés de BLAKE :<br />
Select *<br />
from emp<br />
where NEchef = 7698;<br />
Tous les employés de son départment :<br />
Select *<br />
from emp e1, emp e2<br />
where e2.NE = 7698<br />
and e1.nd=e2.nd<br />
and e1.ne != 7698;<br />
update emp<br />
set NEchef=8000, ND=40<br />
where NEchef = 7698;<br />
delete from emp<br />
where NE = 7698;<br />
delete from dept<br />
where ND = 30;
10. Ajouter un nouveau département. Il est à PARIS. Son nom est « INFO ». Passer tous les<br />
employés du département 20 dans ce département.<br />
Insert into dept values (50, ‘INFO’, ‘PARIS’);<br />
Update emp<br />
Set ND = 50<br />
Where ND = 20;