4.4 Création d’une table
59
© Dunod – La photocopie non autorisée est un délit.
On peut enfin définir la valeur, dite valeur par défaut, que le SGBD assignera automatiquement à une colonne (éventuellement via son domaine) lorsque l’utilisateur
omettra d’en fournir une lors de la création d’une ligne :
create domain MONTANT decimal(9,2) default 0.0
CAT char(2) default 'AA'
En SQL:1999, les domaines tendent à être remplacés par le concept plus puissant de
type.
b) Expression de l’identifiant primaire
On complétera la déclaration de la table par la clause primary key :
create table CLIENT ( NCLI
char(10),
NOM
char(32),
ADRESSE char(60),
LOCALITE char(30),
CAT
char(2),
COMPTE
decimal (9,2),
primary key (NCLI) )
create table DETAIL ( NCOM
char(12),
NPRO
char(15),
QCOM
decimal(8),
primary key (NCOM,NPRO) )
c) Expression d’un identifiant secondaire
Les autres identifiants seront déclarés par une clause unique :
create table ASSURE ( NUM_AFFIL char(10),
NUM_IDENT char(15),
NOM
char(35),
primary key (NUM_AFFIL),
unique (NUM_IDENT) )
d) Expression d’une contrainte référentielle
On déclarera la clé étrangère et la table référencée par une clause foreign key 3 :
3. Certains éditeurs choisissent délibérément d’écarter cette contrainte avec des arguments tels
que les suivants : There are so many problems with foreign keys that we don't know where to start,
ou encore : The only nice aspect of foreign key is that it gives ODBC and some other client
programs the ability to see how a table is connected and to use this to show connection diagrams
and to help in building applications. MySQL Reference Manual, Version 3.23.2-alpha 8 August
1999. On avance aussi l’argument péremptoire qu’ "il suffit de faire attention à ne pas introduire
des données erronées". On pourrait, en suivant le même raisonnement, prôner l’inutilité des antibiotiques et des logiciels anti-virus. Les dernières versions de MySQL montrent que les concepteurs ont fait de louables efforts dans le bon sens.
Précédent

- 59/436

Suivant