Easy-Micro


 
ESPACEMEMBRE MySQL
Import-Export

Exporter et importer des données MySQL

MySQL 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 pa sde chemin, cela cré le fichier automatiquement dans mysql/data (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

MySQL 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 5.0\bin"
ou si vous utilisez EasyPHP un cd "C:\Program Files\EasyPHP1-8\mysql\bin" puis un

C:\Program Files\MySQL\MySQL Server 5.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.
Plus d'infos sur les options de l'outil en ligne de commande mysql.

Pour rajouter des lignes dans le fichier texte, il suffit de rajouter un autre chevron (>), soit:
C:\Program Files\MySQL\MySQL Server 5.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 avans le select:
C:\Program Files\MySQL\MySQL Server 5.0\bin>
mysql -b mabase -e "select * from articles" >> "c:\mon.txt" -u root -h localhost -p


MySQL 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 stucture de la table.

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 executer une sauvegarde, on aurais pu utiliser la commande "PAGER" d'UNIX mais elle ne ne fonctionne pas sous Windows.

MySQL Importer depuis l'invite de commande DOS

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

Faire un fichier texte de données sans les noms des colonnes.

C:\Program Files\MySQL\MySQL Server 5.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 (Attention : pas de guillemets!!!) :
mysql> SOURCE c:\masauvegarde.txt;

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.



Suivez les aventures des skippers aquitains sur EasyVoile.com
Flux RSS Easy-Micro - Abonnez-vous Easy-Micro [ François Bisch ]
Lundi 18 novembre 2019 - Semaine 47 - Sainte Aude (Demain: Saint Tanguy)
Aujourd'hui, c'est l'anniversaire de Kim Wilde (1960-59 ans), chanteuse anglaise (Kids in America - 1981). Autre 18 novembre: 1916 - Fin de la bataille de la Somme (1ère guerre mondiale).
Haut de page Easy-Micro