© Éditions Eyrolles
25
chapitre n° 1
Définition des données
Remarques
• L’ordre n’est pas important dans la déclaration des contraintes nommées.
• PRIMARY KEY équivaut à : UNIQUE + NOT NULL + index.
• L’ordre de création des tables est important quand on définit les contraintes en même temps
que les tables (on peut différer la création ou l’activation des contraintes, voir le chapitre 3).
Il faut créer d’abord les tables « pères » puis les tables « fils ». Le script de destruction des
tables suit le raisonnement inverse.
Figure 1-2 Deux tables reliées à créer
Tableau 1-3 Contraintes en ligne et nommées
Tables
Contraintes
CREATE TABLE Compagnie
(comp CHAR(4), nrue INTEGER(3),
rue CHAR(20), ville CHAR(15) DEFAULT 'Paris'
COMMENT 'Par defaut : Paris',
nomComp CHAR(15) NOT NULL,
CONSTRAINT pk_Compagnie PRIMARY KEY(comp));
Deux contraintes en ligne
et une contrainte nommée
de clé primaire.
CREATE TABLE Pilote
(brevet CHAR(6), nom CHAR(15) NOT NULL,
nbHVol DECIMAL(7,2), compa CHAR(4),
CONSTRAINT pk_Pilote PRIMARY KEY(brevet),
CONSTRAINT ck_nbHVol
CHECK(nbHVol BETWEEN 0 AND 20000),
CONSTRAINT un_nom UNIQUE (nom),
CONSTRAINT fk_Pil_compa_Comp
FOREIGN KEY (compa)
REFERENCES Compagnie(comp));
Une contrainte en ligne
et quatre contraintes nommées :
• Clé primaire
• NOT NULL
• CHECK (nombre d’heures de vol
compris entre 0 et 20 000)
• UNIQUE (homonymes interdits)
• Clé étrangère
Pilote
brevet
nom
nbHVol compa
Compagnie
comp
nrue rue
ville
nomComp
Web
Précédent

- 47/418

Suivant