Vous êtes sur la page 1sur 3

Correction TP2

1)

create table magasin (

numMag number (8) constraint pk_magasin primary key,

surface number (5),

ville varchar2(15) default 'SFAX');

create table categorie (

numCat number(2) constraint pk_cat primary key constraint ck_cat check


(numCat in (1,2,3,4)),

libCat varchar2(15));

create table produit (

numProd number(7) constraint pk_prod primary key,

couleur varchar2(10),

qteStock number(5) not null check (qteStock >= 0),

designation varchar2(10) constraint uq_prod unique,

poids number(7,3) constraint ck_poids check (poids between 0 and 1000),

numMag number(5),

numCat number(2),

constraint fk_magasin foreign key (numMag) references magasin (numMag),

constraint fk_categorie foreign key (numCat) references categorie (numCat)) ;


create table commande (

numCde number(5) constraint pk_cde primary key,

dateCde date default sysdate);

Create table ligneCde(

numCde number(8)constraint fk_cde references commande (numCde),

numProd number (5),

qtecde number (5),

constraint fk_Prod foreign key (numProd) references produit (numProd),

constraint pk_ligne primary key (numProd, numCde));

2)

- alter table produit add qtemin number(5) ;

- alter table produit add constraint ck_qte check (qtestock >= qtemin) ;

- alter table produit modify designation varchar2(20) ;

- alter table produit add constraint ck_couleur check (couleur in (‘Rouge’,

‘Bleu’, ’Vert’, ‘Jaune’, ‘Blanc’)) ;

- alter table produit drop column poids ;

- alter table produit drop constraint pk_prod cascade ;

le mot clé cascade permet de supprimer la contrainte de clé primaire et aussi la


contrainte de clé étrangère qui porte sur l’attribut numprod de la table
ligneCde

Remarque : si on a voulu supprimer l’attribut numprod de la table produit alors


il faut ajouter dans ce cas le mot clé cascade constraints de la manière suivante

alter table produit drop COLUMN numprod cascade CONSTRAINTS; dans ce cas
le SGBD supprime l’attribut numprod et la contrainte de clé primaire de la table
produit et aussi la contrainte de clé étrangère qui porte sur l’attribut numprod
de la table ligneCde.

- Pour remettre la table Produit à son état initial, il faut ajouter la contrainte de
clé primaire de la manière suivante :

alter table produit add constraint pk_prod primary key (numprod);

Si on a supprimé l’attribut numprod, alors pour remettre la table Produit à son


état initial, il faut ajouter l’attribut et la contrainte de clé primaire de la
manière suivante :

alter table produit add numprod NUMBER(7) constraint pk_prod primary key;

- Rename Produit To Article

- Create Synonym LC For LigneCde;

Remarque:
Il faut remettre la table ligneCde à son état initial après l’ajout de l’attribut
numprod et la contrainte de clé primaire de la table produit:
Alter table LigneCde add constraint fk_prod foreign key (numprod) references
article (numprod);
3)

select * from USER_CONSTRAINTS where table_name = 'ARTICLE';

Vous aimerez peut-être aussi