Comment exporter une table en CSV dans MySQL

Le fichier CSV est un format de fichier texte très courant, pris en charge par de nombreuses applications. La forme complète de CSV est Comma-Separated Values (valeurs séparées par des virgules). Cela signifie que les données sont séparées par une virgule dans chaque ligne de ce fichier. Il est principalement utilisé pour échanger des données tabulaires entre différents types d’applications qui prennent en charge ce format de fichier. XML est un autre format de fichier couramment utilisé pour échanger des données entre applications. Mais le fichier CSV est une meilleure option que le fichier XML, car il prend moins d’espace et de bande passante qu’un fichier XML. Vous devez exporter des données au format CSV depuis une application avant de les importer dans une autre application. MySQL prend en charge différentes manières d’exporter des données à partir des tables de la base de données. Le format CSV est l’un d’entre eux. Cet article montre différentes façons d’exporter des données au format CSV à partir de la table de base de données MySQL.

Préalable:

Avant d’exécuter toute instruction d’exportation, vous devez créer une nouvelle base de données et des tables ou sélectionner une base de données et des tables existantes. Exécutez les commandes suivantes pour créer une base de données de bibliothèque et trois tables nommées books, borrowers et book_borrow_info.

Exécutez les commandes SQL suivantes pour insérer certaines données dans trois tables.

Chaque fichier exporté stocke dans un emplacement particulier dans MySQL et l’emplacement est stocké dans la variable, « secure_file_priv ». Exécutez la commande suivante pour connaître le chemin d’accès au fichier. C’est une variable en lecture seule que vous ne pouvez pas modifier.

SHOW VARIABLES LIKE « secure_file_priv » ;

L’emplacement du fichier est ‘/var/lib/mysql-files/’. Vous devez utiliser cet emplacement au moment de l’exécution de la commande export.

Exporter des données au format CSV à l’aide de l’instruction INTO OUTFILE:

Toute table de base de données peut être exportée à l’aide de l’instruction INTO OUTFILE. Supposons que je veuille exporter les données de la table des livres. Exécutez la commande suivante pour vérifier les données existantes de cette table.

SELECT * FROM books ;

Tout nom de fichier avec l’extension .csv peut être défini pour le nom de fichier d’exportation. Exécutez la commande d’exportation suivante pour créer le fichier books.csv à l’emplacement,/var/lib/mysql-files/.

SELECT title, author, publisher FROM books INTO OUTFILE ‘/var/lib/mysql-files/books.csv’ ;

Aller à l’emplacement de l’exportation pour vérifier que le fichier est créé sur pas. Cliquez sur le fichier pour afficher le contenu du fichier. Si la virgule existe comme valeur de n’importe quel champ de la table, alors elle séparera la valeur en plusieurs valeurs. Dans la table books, le champ publisher contient une virgule (,) comme contenu dans le troisième enregistrement. Si vous examinez le contenu du fichier CSV, vous verrez que le contenu éditeur est séparé en deux valeurs qui ne sont pas appropriées.

Pour résoudre le problème ci-dessus, vous pouvez exporter les données de la table livres dans un fichier CSV en spécifiant correctement les délimiteurs nécessaires dans la déclaration SQL. Exécutez la commande suivante pour exporter la table des livres dans le fichier books2.csv de manière appropriée. Ici, trois délimiteurs sont utilisés pour exporter correctement les données. Il s’agit de FIELDS TERMINÉS PAR, ENCLOSES PAR et LIGNES TERMINÉES PAR.

Maintenant, si vous ouvrez le fichier books2.csv alors vous verrez que le problème précédent est résolu dans ce fichier et que les données virgule(,) ne sont pas divisées en plusieurs valeurs.

Exporter les données au format CSV en utilisant le client mysql:

Les données de la table peuvent être exportées dans un fichier CSV en utilisant le client mysql. The borrowers table is exported in this part of this article. Run the following command to check the existing content of this table.

SELECT * FROM borrowers;

mysql statement with `sed` command is used here to export the data. One of the benefits of this statement is that you can set any location and filename for storing the CSV file without the default location that is used in the previous example. If there is no password for the root user then -p option will be omitted. The exported location is /tmp and filename is output.csv here.

mysql -h localhost -u root -p -e ‘select * from library.borrowers’ |
sed ‘s/\t/,/g’ > /tmp/output.csv

If you open the output.csv alors la sortie suivante apparaîtra.

Exporter les données au format CSV à l’aide de phpmyadmin:

La table de la base de données peut être exportée en fichier CSV très facilement en utilisant n’importe quel outil d’administration de base de données. Vous devez installer l’outil avant de faire l’exportation. phpmyadmin est utilisé ici pour exporter la table dans le fichier CSV. Ici, le nom du fichier exporté sera le nom de la table. Exécutez l’URL suivante dans n’importe quel navigateur pour afficher la liste des bases de données existantes du serveur MySQL.

Sélectionnez la table de la base de données que vous voulez exporter et cliquez sur l’onglet Exportation du côté droit. Sélectionnez le format CSV dans la liste déroulante Format et cliquez sur le bouton Go. Sélectionnez l’option Enregistrer le fichier et appuyez sur le bouton OK.


Le fichier sera téléchargé dans le dossier Téléchargements. Ici, la table book_borrow_info est exportée. Ainsi, le nom du fichier CSV sera book_borrow_info.csv et le contenu suivant apparaîtra si vous ouvrez le fichier.

Conclusion:

La tâche d’échange de données entre les applications devient plus facile en utilisant la fonction d’exportation du serveur de base de données. MySQL prend en charge de nombreux autres formats de fichiers pour exporter les données des tables. Le format de fichier sql est principalement utilisé pour transférer des données entre les mêmes serveurs de base de données. Le format CSV est très utile si vous souhaitez échanger des données entre deux applications différentes.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.