Création de la table
Code : SQL
CREATE TABLE [IF NOT EXISTS] Nom_table (
colonne1 description_colonne1,
[colonne2 description_colonne2,
colonne3 description_colonne3,
...,]
[PRIMARY KEY (colonne_clé_primaire)]
)
[ENGINE=moteur];
Le IF NOT EXISTS est facultatif (d'où l'utilisation de crochets [ ]), et a le même rôle que dans la commande CREATE
DATABASE : si une table de ce nom existe déjà dans la base de données, la requête renverra un warning plutôt qu'une erreur si
IF NOT EXISTS est spécifié.
Ce n'est pas non plus une erreur de ne pas préciser la clé primaire directement à la création de la table. Il est tout à fait possible de
l'ajouter par la suite. Nous verrons comment un peu plus tard.
Définition des colonnes
Pour définir une colonne, il faut donc donner son nom en premier, puis sa description. La description est constituée au minimum
du type de la colonne. Exemple :
Code : SQL
nom VARCHAR(30),
sexe CHAR(1)
C'est aussi dans la description que l'on précise si la colonne peut contenir NULL ou pas (par défaut, NULL est autorisé). Exemple
:
Code : SQL
espece VARCHAR(40) NOT NULL,
date_naissance DATETIME NOT NULL
L'auto-incrémentation se définit également à cet endroit. Notez qu'il est également possible de définir une colonne comme étant la
clé primaire dans sa description. Il ne faut alors plus l'indiquer après la définition de toutes les colonnes. Je vous conseille
néanmoins de ne pas l'indiquer à cet endroit, nous verrons plus tard pourquoi.
Code : SQL
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT [PRIMARY KEY]
Enfin, on peut donner une valeur par défaut au champ. Si lorsque l'on insère une ligne, aucune valeur n'est précisée pour le
champ, c'est la valeur par défaut qui sera utilisée. Notez que si une colonne est autorisée à contenir NULL et qu'on ne précise pas
de valeur par défaut, alors NULL est implicitement considéré comme valeur par défaut.
Exemple :
Code : SQL
espece VARCHAR(40) NOT NULL DEFAULT 'chien'
Une valeur par défaut DOIT être une constante. Ce ne peut pas être une fonction (comme par exemple la fonction
Partie 1 : MySQL et les bases du langage SQL
41/414
www.openclassrooms.com
Précédent

- 41/413

Suivant