21.11.2014 Views

TP 2 - CORRIGE

TP 2 - CORRIGE

TP 2 - 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> 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;

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

Saved successfully!

Ooh no, something went wrong!