60
Chapitre 4 • Le langage SQL DDL
create table DETAIL ( NCOM char(12),
NPRO char(15),
QCOM decimal(8),
primary key (NCOM,NPRO),
foreign key (NCOM) references COMMANDE,
foreign key (NPRO) references PRODUIT )
Par défaut, l’identifiant visé par la clé étrangère dans la table cible est l’identifiant
primaire de celle-ci. Il est possible, mais ceci est déconseillé en toute généralité, de
définir une clé étrangère visant un identifiant secondaire de la table cible. Dans ce
cas, les composants de cet identifiant doivent être mentionnés dans la déclaration :
foreign key (PROPRIO) references PERSONNE(NUM_REGISTRE)
e) Expression du caractère obligatoire/facultatif d’une colonne
Par défaut (c’est-à-dire si on ne spécifie rien) toute colonne est facultative. Le caractère obligatoire d’une colonne se déclarera par la clause not null :
create table OFFRE ( NUMFL char(10) not null,
NUMPL char(15) not null,
PRIX
decimal(8),
primary key (NUMFL, NUMPL),
foreign key (NUMFL) references FOURNISSEUR,
foreign key (NUMPL) references PIECE )
f) Exemple complet
On peut ainsi donner la définition du schéma de la base de données décrite à la
figure 3.5 sous la forme d’une suite de requêtes (ou script) SQL :
create table CLIENT ( NCLI
char(10) not null,
NOM
char(32) not null,
ADRESSE char(60) not null,
LOCALITE char(30) not null,
CAT
char(2),
COMPTE
decimal(9,2) not null,
primary key (NCLI) )
create table PRODUIT ( NPRO
char(15) not null,
LIBELLE char(60) not null,
PRIX
decimal(6) not null,
QSTOCK
decimal(8) not null,
primary key (NPRO) )
create table COMMANDE (NCOM
char(12) not null,
NCLI
char(10) not null,
DATECOM date not null,
primary key (NCOM),
foreign key (NCLI) references CLIENT)
Précédent

- 60/436

Suivant