Vous voulez exporter les résultats d’une requête MySQL dans un fichier ? Dans cet article nous allons voir la méthode que vous devez utiliser. Cette dernière est très simple et très rapide également.

Il est souvent très utile d’exporter une requête dans un fichier. Par exemple, vous avez peut-être une base de données contenant des tables sur un site e-commerce. Vous souhaitez peut-être exporter des données comme les clients, les commandes…Vous pouvez créer une requête pour faire une jointure et en exporter les résultats régulièrement dans un fichier.

Exporter les résultats d’une requête MySQL dans un fichier

Exporter les résultats d’une requête MySQL dans un fichier

Il arrive qu’il ne soit pas possible de le faire par le biais de phpMyAdmin et que notre seule alternative soit la ligne de commande. Dès lors, il est relativement simple de faire un export d’une requête dans un fichier.

Ouvrir un terminal MySQL

Pour commencer nous allons ouvrir l’application en ligne de commande de MySQL, pour cela, il faut savoir où se trouve cette dernière, si vous êtes sous Wamp ou Xampp, vous devez rechercher le dossier bin qui se trouve dans le dossier MySQL, vous trouvez un exécutable nommez mysql.exe.

Pour lancer cet exécutable il suffit d’utiliser simultanément les touches windows (entre Ctrl et Alt) et la touche R. Dedans, nous entrons le chemin d’accès à notre exécutable mysql suivi de –user=root. Autrement dit, nous ouvrons notre application avec les droits super-utilisateur, si vous avez un mot de passe sur votre base de données n’oubliez pas d’ajouter le « password ».

 

Lancer MySQL

Comment exporter les résultats d’une requête MySQL dans un fichier ?

Désormais, nous sommes prêts pour exporter les résultats d’une requête MySQL dans un fichier. Il faut sélectionner la base de données dans laquelle nous allons effectuer la manipulation. Pour cela on utilise USE puis le nom de la base de données, ici « datacountry ». Il s’agit d’une base de données comprenant des informations et données sur les pays. Vous devez donc adapter au nom de votre base de données.

Requête MySQL pour sélectionner une base de données

Nous pouvons commencer la requête à exporter dans un fichier, nous allons dans un premier temps la montrer d’un bloc, puis l’expliquer :

SELECT * INTO OUTFILE 'X:\\fichierSortie.csv'
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
FROM undp WHERE id_country = 'FRA';

Voici la capture d’écran du résultat. On constate sous cette dernière qu’elle a fonctionné.

Requête MySQL pour exporter résultat

Explication de la requête

Pour que vous puissiez facilement l’adapter, nous allons expliquer comment exporter les résultats d’une requête MySQL dans un fichier. Nous commençons la requête normalement avec Select. Cela permet de choisir les champs qui apparaîtront, l’étoile signifie « tous ». Ensuite (et c’est cela qui nous intéresse) on indique où l’on souhaite envoyer ces derniers.

Il s’agit d’un fichier qui sera situé à la base du lecteur X:\\, vous pouvez choisir celui que vous souhaitez. On aurait pu choisir le classique C:\\. Tout dépend de l’organisation de votre machine, vous pouvez également le mettre dans un dossier en X:\\monDossier\sortieDuFichier.csv. Vous devez donc adapter les noms.

Désormais, nous devons indiquer comment notre fichier sera formaté. Ici les champs seront séparés avec un point-virgule. Vous pouvez changer par une virgule par exemple. Ils seront entourés par des doubles guillemets (au cas par exemple où nous exportons du texte contenant des virgules ou point-virgule) et enfin il sera terminé par un saut à la ligne.

Ensuite c’est la fin d’une requête classique, vous indiquez la table où faire la sélection (ici undp) et on pose la condition (ici lorsque le champ id_country contient FRA).

Et il ne faut surtout pas oublier de finir notre requête d’export par le point virgule pour la lancer.

Nous pouvons voir que la requête pour exporter notre sélection dans une ligne de commande à fonctionné puisque nous avons notre fichier à la racine du lecteur X.

Création de fichier MySQL en ligne de commande