Créer la base de données est la partie facile, mais jusque-là
elle est vide, comme vous le montre SHOW
TABLES
:
mysql> SHOW TABLES;
Empty set (0.00 sec)
La partie la plus difficile est le choix de la structure de la base de données : de quelles tables aurez vous besoin et quelles colonnes devront figurer dans chacune d'elles.
Vous voudrez une table qui contient un enregistrement pour
chaque animal. On peut l'appeler la table
animal
, et elle devra contenir, au minimum,
le nom de chaque animal. Puisque le nom tout seul n'est pas
intéressant, la table devra contenir d'autres informations. Par
exemple, si plus d'une personne de votre famille possède un
animal, vous voudrez lister le nom du maître de chaque animal.
Vous voudrez peut-être aussi enregistrer une description
basique comme l'espèce ou le sexe.
Et pour l'âge ? C'est intéressant, mais n'est pas bon pour un stockage en base de données. L'âge change chaque jour, vous devrez donc mettre à jour vos enregistrements assez souvent. Il est préférable de stocker une valeur fixe, comme la date de naissance. Dans ce cas-là, à chaque fois que vous aurez besoin de l'âge, vous pourrez l'obtenir en faisant la différence entre la date courante et la date enregistrée. MySQL fournit des fonctions de calcul sur les dates, cela ne sera donc pas difficile. Enregistrer la date de naissance, au lieu de l'âge a d'autres avantages :
Vous pouvez utiliser la base de données pour des tâches, comme la génération d'un rappel pour les prochains anniversaires d'animaux. (Si vous trouvez que ce type de requêtes est quelque peu idiot, notez que c'est la même question que vous vous poseriez dans le contexte d'une base de données d'affaires pour identifier les clients à qui vous aurez besoin d'envoyer un message de voeux, pour cette touche informatiquement assistée d'humanisme.)
Vous pouvez calculer l'âge à partir d'autres dates que la date du jour. Par exemple, si vous stockez la date de la mort dans la base de données, vous pourrez facilement calculer l'âge qu'avait un animal à sa mort.
Vous trouverez probablement d'autres informations qui pourront
être utiles dans la table animal
, mais
celles identifiés jusqu'à maintenant sont largement
suffisantes pour l'instant : nom, maître, espèce, sexe,
naissance, et mort.
Utilisez une requête CREATE TABLE
pour
spécifier la structure de votre table :
mysql>CREATE TABLE animal (nom VARCHAR(20), maitre VARCHAR(20),
->espece VARCHAR(20), sexe CHAR(1), naissance DATE, mort DATE);
VARCHAR
est un bon choix pour les colonnes
nom
, maitre
, et
espece
car leurs valeurs varient en longueur.
La longueur de ces colonnes ne doit pas nécessairement être la
même, et n'a pas besoin d'être forcement
20
. Vous pouvez choisir une taille entre
1
et 255
, celle qui vous
semblera la plus raisonnable. (Si vous faites un mauvais choix
et que vous vous apercevez plus tard que vous avez besoin d'un
champ plus long, MySQL fournit la commande ALTER
TABLE
.)
Le sexe des animaux peut être représenté de plusieurs
fa¸ons, par exemple, "m"
et
"f"
, ou bien "male"
et
"femelle"
. Il est plus simple d'utiliser les
caractères simples "m"
et
"f"
.
L'utilisation du type de données DATE
pour
les colonnes naissance
et
mort
est un choix plutôt judicieux.
Maintenant que vous avez créé une table, SHOW
TABLES
devrait produire de l'affichage :
mysql> SHOW TABLES;
+---------------------+
| Tables in menagerie |
+---------------------+
| animal |
+---------------------+
Pour vérifier que la table a été créée de la fa¸on que
vous vouliez , utilisez la commande
DESCRIBE
:
mysql> DESCRIBE animal;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| nom | varchar(20) | YES | | NULL | |
| maitre | varchar(20) | YES | | NULL | |
| espece | varchar(20) | YES | | NULL | |
| sexe | char(1) | YES | | NULL | |
| naissance | date | YES | | NULL | |
| mort | date | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
Vous pouvez utiliser DESCRIBE
quand vous
voulez, par exemple, si vous avez oublié les noms des colonnes
dans votre table ou leurs types.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.