Création de tables
Dans ce chapitre, nous allons créer, étape par étape, une table Animal, qui servira à stocker les animaux présents dans notre
élevage.
Soyez gentils avec cette table, car c'est elle qui vous accompagnera tout au long de la première partie (on apprendra à jongler
avec plusieurs tables dans la deuxième partie).
Pour commencer, il faudra définir de quelles colonnes (et leur type) la table sera composée. Ne négligez pas cette étape, c'est la
plus importante. Une base de données mal conçue est un cauchemar à utiliser.
Ensuite, petit passage obligé par de la théorie : vous apprendrez ce qu'est une clé primaire et à quoi ça sert, et découvrirez cette
fonctionnalité exclusive de MySQL que sont les moteurs de table.
Enfin, la table Animal sera créée, et la requête de création des tables décortiquée. Et dans la foulée, nous verrons également
comment supprimer une table.
Définition des colonnes
Type de colonne
Avant de choisir le type des colonnes, il faut choisir les colonnes que l'on va définir. On va donc créer une table Animal. Qu'estce qui caractérise un animal ? Son espèce, son sexe, sa date de naissance. Quoi d'autre ? Une éventuelle colonne commentaires
qui peut servir de fourre-tout. Dans le cas d'un élevage sentimental, on peut avoir donné un nom à nos bestioles.
Disons que c'est tout pour le moment. Examinons donc les colonnes afin d'en choisir le type au mieux.
Espèce : on a des chats, des chiens et des tortues pour l'instant. On peut donc caractériser l'espèce par un ou plusieurs
mots. Ce sera donc un champ de type alphanumérique.
Les noms d'espèces sont relativement courts, mais n'ont pas tous la même longueur. On choisira donc un VARCHAR.
Mais quelle longueur lui donner ? Beaucoup de noms d'espèces ne contiennent qu'un mot, mais "harfang des neiges",
par exemple, en contient trois, et 18 caractères. Histoire de ne prendre aucun risque, autant autoriser jusqu'à 40 caractères
pour l'espèce.
Sexe : ici, deux choix possibles (mâle ou femelle). Le risque de voir un troisième sexe apparaître est extrêmement faible. Par
conséquent, il serait possible d'utiliser un ENUM. Cependant, ENUM reste un type non standard. Pour cette raison, nous
utiliserons plutôt une colonne CHAR(1), contenant soit 'M' (mâle), soit 'F' (femelle).
Date de naissance : pas besoin de réfléchir beaucoup ici. Il s'agit d'une date, donc soit un DATETIME, soit une DATE.
L'heure de la naissance est-elle importante ? Disons que oui, du moins pour les soins lors des premiers jours. DATETIME
donc !
Commentaires : de nouveau un type alphanumérique évidemment, mais on a ici aucune idée de la longueur. Ce sera sans
doute succinct mais il faut prévoir un minimum de place quand même. Ce sera donc un champ TEXT.
Nom : plutôt facile à déterminer. On prendra simplement un VARCHAR(30). On ne pourra pas appeler nos tortues "Petite
maison dans la prairie verdoyante", mais c'est amplement suffisant pour "Rox" ou "Roucky".
NULL or NOT NULL ?
Il faut maintenant déterminer si l'on autorise les colonnes à ne pas stocker de valeur (ce qui est donc représenté par NULL).
Espèce : un éleveur digne de ce nom connaît l'espèce des animaux qu'il élève. On n'autorisera donc pas la colonne espece
à être NULL.
Sexe : le sexe de certains animaux est très difficile à déterminer à la naissance. Il n'est donc pas impossible qu'on doive
attendre plusieurs semaines pour savoir si "Rox" est en réalité "Roxa". Par conséquent, la colonne sexe peut contenir
NULL.
Date de naissance : pour garantir la pureté des races, on ne travaille qu'avec des individus dont on connaît la provenance
(en cas d'apport extérieur), les parents, la date de naissance. Cette colonne ne peut donc pas être NULL.
Commentaires : ce champ peut très bien ne rien contenir, si la bestiole concernée ne présente absolument aucune
particularité.
Nom : en cas de panne d'inspiration (ça a l'air facile comme ça mais, une chatte pouvant avoir entre 1 et 8 petits d'un coup,
il est parfois difficile d'inventer 8 noms originaux comme ça !), il vaut mieux autoriser cette colonne à être NULL.
Récapitulatif
Comme d'habitude, un petit tableau pour récapituler tout ça :
Caractéristique Nom de la colonne
Type
NULL?
Espèce
espece
VARCHAR(40) Non
Partie 1 : MySQL et les bases du langage SQL
38/414
www.openclassrooms.com
Précédent

- 38/413

Suivant