Easy-Micro

ESPACEMEMBRE MySQL/MariaDB
Import-Export

Exporter et importer des données MySQL

Formation MySQL par Easy-Micro Exporter des données

Les options OUTFILE et DUMPFILE permettent d'exporter les données lues dans un fichier texte sur le serveur.

  • OUTFILE permet de créer un fichier texte avec les éventuels caractères d'échappement nécessaires.
  • DUMPFILE permet d'exporter des données au format binaire. Elle est utilisée pour exporter les champs au format binaire (type BLOB par exemple). Attention, un seul enregistrement peut-être exporté à la fois avec l'instruction DUMPFILE.
Exportons toutes les données de la table articles dans le fichier "monfichier.txt"
mysql> SELECT * INTO OUTFILE 'C:/monfichier.txt' FROM articles;
Si vous ne spécifiez pas de chemin, cela cré le fichier automatiquement dans mysql/data (ou sous EASYPHP: c:\Programes Files\EasyPHP\mysql\data)
Exemple de requête SQL pour exporter une table au format csv (comma-separated values)
mysql> SELECT * INTO OUTFILE "c:/stats.csv"
-> FIELDS
-> TERMINATED BY ";"
-> ENCLOSED BY '"'
-> ESCAPED BY "\\"
-> LINES TERMINATED BY "\n"
-> FROM clients;

FIELDS permet de définir les règles sur les colonnes (les champs) :
  • TERMINATED BY ";" définit que le caractère ; est le séparateur entre les champs
  • ENCLOSED BY '"' définit que le caractère " (guillemet) entoure les champs
  • ESCAPED BY "\\" définit que le caractère \ permet d'échapper les caractères interdits.
LINES permet de définir les règles sur les données (les lignes) :
  • STARTING BY '' définit qu'il n'y a pas de caractère spécial pour démarrer la chaine
  • TERMINATED BY "\n" définit que le retour à la ligne correspond au changement de ligne

Formation MySQL par Easy-Micro Exporter depuis l'invite de commande DOS

Exporter le contenu d'une table en redirigeant le résultat d'une requête DOS vers un fichier en local. Sous la commande DOS, faire un cd "C:\Program Files\MySQL\MySQL Server x.0\bin" ou si vous utilisez EasyPHP un cd "C:\Program Files\EasyPHP1-x\mysql\bin" puis un

C:\Program Files\MySQL\MySQL Server x.0\bin>
mysql -e "select * from mabase.clients" > "c:\matable.txt" -u root -h localhost -p
Note: le fichier texte "matable.txt" est créé automatiquement. L'option -e signifie execute: exécute une commande et quitte.
Pour rajouter des lignes dans le fichier texte, il suffit de rajouter un autre chevron (>), soit
C:\Program Files\MySQL\MySQL Server x.0\bin>
mysql -e "select * from mabase.clients" >> "c:\matable.txt" -u root -h localhost -p
Voir aussi l'option -b pour rajouter le nom de la base avant le select
C:\Program Files\MySQL\MySQL Server x.0\bin>
mysql -b mabase -e "select * from articles" >> "c:\mon.txt" -u root -h localhost -p

Formation MySQL par Easy-Micro Importer des données

Pour importer les données d'un fichier vers une base MySQL, on utilise la requête SQL LOAD DATA INFILE

Importons toutes les données du fichier "mesclients.txt" dans la table clients.
mysql> LOAD DATA INFILE "C:/mesclients.txt"
-> INTO TABLE clients (idclient, nom, prenom, adresse, codepostal, ville);
Note : Le fichier mesclients.txt est créé automatiquement. De plus, le nom des colonnes est facultatif mais la structure du fichier "mesclients.txt" doit correspondre à la structure de la table.

Importer depuis un fichier csv

Exemple de contenu de fichier csv
"GRA004";"GRANT";"William";"rue des presidents";"75000";"Paris"
"JAM005";"JAMES";"René""rue du petit chemin";"64000";"Pau"
"DEL006";"DELOIN";"Anthony""rue des basques";"33000";"Bordeaux"
Exemple de requête SQL pour importer un fichier csv dans une table
mysql> LOAD DATA INFILE "c:/fichier.csv" INTO TABLE clients
-> FIELDS TERMINATED BY ";" ENCLOSED BY '"' ESCAPED BY "\\"
-> LINES STARTING BY '' TERMINATED BY '\n'
-> (idclient, nom, prenom, adresse, codepostal, ville);
Note: La dernière ligne facultative (idclient, nom, prenom, adresse, codepostal, ville) donne la liste des champs dans lesquels les données vont être enregistrées. L'ordre de ces champs doit correspondre à l'ordre dans lesquelles se trouvent les données dans le fichier.

La première ligne est ici la seule ligne obligatoire car si vous ne spécifiez rien,

  • le séparateur de champ par défaut est la tabulation (TERMINATED BY '\t'),
  • il n'y a pas de caractère qui entoure les champs (ENCLOSED BY ''),
  • le caractère d'échappement des caractères par défaut est \ (ESCAPED BY '\\')
  • et les lignes sont terminées par un retour à la ligne (TERMINATED BY '\n').

Note : Pour exécuter une sauvegarde, on aurais pu utiliser la commande "PAGER" d'UNIX mais elle ne ne fonctionne pas sous Windows.

Formation MySQL par Easy-Micro Importer depuis l'invite de commande DOS

Sous la commande DOS, faire un cd "C:\Program Files\MySQL\MySQL Server x.0\bin" ou si vous utilisez EASYPHP "C:\Program Files\EasyPHP1-x\mysql\bin"

Faire un fichier texte de données sans les noms des colonnes
C:\Program Files\MySQL\MySQL Server x.0\bin>
mysql -e "LOAD DATA INFILE 'c:/mon.txt' INTO TABLE mabase.clients" -u root -h localhost -p
Pour importer vos données, vous pouvez aussi utiliser la commande SOURCE
mysql> SOURCE c:\masauvegarde.txt;
Attention : pas de guillemets!!!
Sinon, utiliser le programme mysqlimport
mysql> mysqlimport mabase
-> "c:/animaux.txt";
Attention, ici, il faut des guillemets et le fichier texte doit comporter le nom de la table à importer.

< Page précédente MYSQL/MARIADB Page suivante >