Vous êtes sur la page 1sur 3

ENSA Cycle Ingénierie 3 Pr.

A Massaq

TP4

Objectif : Manipulation de la structure d’une table


Les commandes LMD

Soit le schéma relationnel suivant :


Emp(NumEmp, Nom, fonction, #NumSup,dateEmbauche,sal,comm, #Numdep)
Supérieur référence le NumEmp du supérieur
Dept (NumDept,NomD,lieu)
Projet (NumProj,NomP, #NumDept)
Travaille (#NumEmp, #NumProj, nbHeures)

-Crée une nouvelle base de données de nom TP4

-Choisir cette base (use)

I) Prise en comptes des contraintes d’intégrité :

1- Créer de nouveau les tables Departement et Employe en tenant en compte


des contraintes suivantes:

-la contrainte d’intégrité, concernant la clé primaire, sur la table


Departement.
- la contrainte d’intégrité, concernant la clé primaire sur la table Employe.
- la contrainte d’intégrité, concernant la clé étrangère sur la table
Employe.

Ne pas oublier d’ajouter aussi la contrainte sur le champ numSup (chaque


employé à un supérieur qui doit exister). Numsup est une clé étrangère qui
fait référence à numemp dans la même table(employe) : auto jointure
2- Insérer le jeux de données en annexe
3-
a- Rajouter une contraint imposant que la valeur du champ ‘lieu’ soit
unique, Est ce que cette contrainte est cohérente avec le jeux de données?*
Qu est ce qu il faut faire pour que cette clause soit acceptée ?
Tester le bon fonctionnement.
b-Rajouter une contrainte pour que le champs NumEmp de la table
employé accepte ‘null’ ? tester si c est possible

1
II- Manipulation de la structure d’une table

1-Ajouter une colonne Adresse et e-mail dans la table emp en respectant


ces conditions : l’email doit contenir un @.
2-Tester la contrainte sur le champ email : en insérant une adresse email
ne contenant pas @

3- consulter la table departement


4-
a-supprimer le département 30 de la table DEPT.
b-supprimer le département 10 de la table DEPT. Conclusion
5- Essayer de supprimer, à l aide d Alter et drop, la contrainte clé
primaire de la table DEPT. Conclusion.

6- a-Insérer le tuple ci-après dans la table Departement


(70,'DIRECTION','BOSTON');
b-Rajouter une contraint imposant que la valeur du champ NomD (nom
departement) soit unique  si donne erreur, est ce que c est normal ?
c-Supprimer de la table département la ligne où num de departement =70
d-essayer maintenant de rajouter la contraint imposant que la valeur du
champ NomD (nom departement) soit unique, conclusion
7-Renommer la colonne Adresse en adr
8-Augmenter la taille du champs email de 20 caractères

7- Vérifier qu’on ne peut pas ajouter une colonne dont la valeur du champ est
obligatoire (NOT NULL) dans une table que si cette table est vide. Vous prouvez faire
ce test lors de l’ajout de la colonne phone.
8-On souhaite supprimer toutes les tables. Indiquez l’ordre de suppression
ou l’option de suppression.
9-supprimer les tables

Annexe
INSERT INTO DEPT VALUES (20,'RECHERCHE','DALLAS');
INSERT INTO DEPT VALUES (10,'DIRECTIO','NEW YORK');
INSERT INTO DEPT VALUES (30,'VENTE','CHICAGO');
INSERT INTO DEPT VALUES (40,'PRODUCTION','BOSTON');
INSERT INTO DEPT VALUES (50,'ACHAT','BOSTON');

INSERT INTO EMP VALUES (7839,'KING','PRESIDENT',NULL,'1982-11-


13',5000,NULL,10);
INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER',7839,'1981-11-18',2850,NULL,30);
INSERT INTO EMP VALUES (7782,'CLARK','MANAGER',7839,'1983-12-13',2450,NULL,10);

2
INSERT INTO EMP VALUES (7566,'JONES','MANAGER',7839,'1982-03-18',2975,NULL,20);
INSERT INTO EMP VALUES (7654,'MARTIN','Ingenieur',7698,'1984-05-18',1250,1400,30);
INSERT INTO EMP VALUES (7499,'ALLEN','INGENIEUR',7698,'1982-08-18',1600,300,30);
INSERT INTO EMP VALUES (7844,'TURNER','INGENIEUR',7698,'1982-05-18',1500,0,30);
INSERT INTO EMP VALUES (7900,'JAMES','COMMERCIAL',7698,'1981-04-
17',950,NULL,30);
INSERT INTO EMP VALUES (7521,'WARD','INGENIEUR',7698,'1985-04-17',1250,500,30);
INSERT INTO EMP VALUES (7902,'FORD','ANALYST',7566,'1988-05-18',3000,NULL,20);
INSERT INTO EMP VALUES (7369,'SMITH','COMMERCIAL',7902,'1985-08-
18',800,NULL,20);
INSERT INTO EMP VALUES (7788,'SCOTT','ANALYST',7566,'1981-08-18',3000,NULL,20);
INSERT INTO EMP VALUES (7876,'ADAMS','COMMERCIAL',7788,'1982-08-
06',1100,NULL,20);
INSERT INTO EMP VALUES (7934,'MILLER','COMMERCIAL',7782,'1981-08-
01',1300,NULL,10);

Vous aimerez peut-être aussi