Import-Export
Exporter et Importer des données en SQL
Exporter des données
Utilisation des options SELECT INTO OUTFILE pour l'export et LOAD DATA INFILE INTO TABLE pour l'import SQL
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"SELECT * INTO OUTFILE 'C:/monfichier.txt' FROM articles;
Exemple de requête SQL pour exporter une table au format csv (comma-separated values)
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.
- 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
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.LOAD DATA INFILE "C:/mesclients.txt"
INTO TABLE clients (idclient, nom, prenom, adresse, codepostal, ville)
Attention: La structure des données 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
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)
La première et la dernière ligne sont ici les seules lignes obligatoires 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').