8.4.2 Charger des données dans une table

Après avoir créé votre table, il faut la remplir. La fonction LOAD DATA et INSERT remplissent cette fonction.

Supposons que les informations sur vos animaux soient décrites comme dans le tableau ci-dessous : Remaquez bien que MySQL utilise un format de date de type AAAA-MM-JJ ; qui n'est pas le format standard.)

Etant donné que vous commencez avec une table vide, le meilleur moyen de remplir cette table est de créer un fichier texte, chaque ligne contenant les informations d'un animal, puis de le charger directement dans la table avec une seule commande.

Vous créez ainsi un fichier animaux.txt' contenant un enregistrement par ligne, avec des valeurs séparées par des tabulation, et dans le même ordre que l'ordre dans lequel les colonnes ont été listées dans la commande CREATE TABLE. Pour les valeurs manquantes (comme par exemple, les genres inconnues, ou les dates de mort des animaux vivants), vous pouvez utiliser la valeur NULL . Vous la représenterez dans le texte avec \N. Par exemple, l'enregistrement de l'oiseau Whistler ressemblera à ceci :

Pour charger ce fichier `animaux.txt' dans la table animaux , utilisez la commande suivante :

mysql> LOAD DATA LOCAL INFILE "animaux.txt" INTO TABLE animaux;

Vous pourriez spécifier le type de chaque colonne et le marqueur de fin de ligne dans la commande LOAD DATA si vous le désiriez, mais les valeurs par défaut (tabulations et retour chariot) fonctionnent très bien ici.

Pour n'ajouter qu'un seul enregistrement à la fois, la fonction INSERT est plus pratique : Dans sa forme la plus simple, vous fournissez les valeurs dans l'ordre des colonnes. Par exemple, si Diane recoit un hamster du nom de Puffball, vous pourriez ajouter un nouvel enregistrement avec la commande suivante :

mysql> INSERT INTO animaux
    -> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

Notez bien que les chaînes et les dates sont spécifiées avec des guillemets. De la même façon, vous pouvez insérer la valeur NULL directement pour représenter une valeur manquante. N'utilisez pas \N comme pour LOAD DATA.

A partir de cet exemple, vous voyez que la commande INSERT requiert nettement plus de frappe au clavier que la fonction LOAD DATA