colonne1 description_colonne1 [,
colonne2 description_colonne2,
colonne3 description_colonne3,
...],
[CONSTRAINT [symbole_contrainte]] PRIMARY KEY (colonne_pk1 [,
colonne_pk2, ...]) -- comme pour les index UNIQUE, CONSTRAINT est
facultatif
)
[ENGINE=moteur];
C'est ce que nous avions fait d'ailleurs pour la table Animal. Cette méthode permet bien sûr la création d'une clé composite (avec
plusieurs colonnes).
Exemple : création de Animal.
Code : SQL
CREATE TABLE Animal (
id SMALLINT AUTO_INCREMENT,
espece VARCHAR(40) NOT NULL,
sexe CHAR(1),
date_naissance DATETIME NOT NULL,
nom VARCHAR(30),
commentaires TEXT,
PRIMARY KEY (id)
)
ENGINE=InnoDB;
Après création de la table
On peut toujours utiliser ALTER TABLE. Par contre, CREATE INDEX n'est pas utilisable pour les clés primaires.
Si vous créez une clé primaire sur une table existante, assurez-vous que la (les) colonne(s) où vous souhaitez l'ajouter
ne contienne(nt) pas NULL.
Code : SQL
ALTER TABLE nom_table
ADD [CONSTRAINT [symbole_contrainte]] PRIMARY KEY (colonne_pk1 [,
colonne_pk2, ...]);
Suppression de la clé primaire
Code : SQL
ALTER TABLE nom_table
DROP PRIMARY KEY
Pas besoin de préciser de quelle clé il s'agit, puisqu'il ne peut y en avoir qu'une seule par table !
Clés étrangères
Les clés étrangères ont pour fonction principale la vérification de l'intégrité de votre base. Elles permettent de s'assurer que vous
n'insérez pas de bêtises…
Reprenons l'exemple dans lequel on a une table Client et une table Commande. Dans la table Commande, on a une colonne qui
contient une référence au client. Ici, le client numéro 3, M. Nicolas Jacques, a donc passé une commande de trois tubes de colle,
tandis que M me Marie Malherbe (cliente numéro 2) a passé deux commandes, pour du papier et des ciseaux.
Partie 2 : Index, jointures et sous-requêtes
91/414
www.openclassrooms.com
Précédent

- 91/413

Suivant