GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exporter une table de MySQL vers CSV

Présentation

Seul un nombre limité d'applications lisent les tables MySQL brutes. Un fichier CSV est beaucoup plus susceptible de fonctionner avec différentes applications de base de données. CSV est un format standard pour les bases de données dans lequel une virgule distingue les valeurs de différentes lignes et colonnes. L'avantage supplémentaire des fichiers CSV est qu'ils sont lisibles par l'homme.

Ce guide détaillé vous montrera comment exporter une base de données MySQL vers un fichier CSV.

Prérequis

  • Accès à une ligne de commande/fenêtre de terminal
  • Compte utilisateur avec privilèges root ou sudo
  • Un compte utilisateur MySQL avec des privilèges root
  • Compte phpMyAdmin préconfiguré (facultatif)

Exporter MySQL vers CSV avec phpMyAdmin

L'outil phpMyAdmin fournit une interface graphique pour gérer vos bases de données MySQL. Vous pouvez l'utiliser pour exporter n'importe laquelle de ses bases de données suivies vers un fichier CSV.

  1. Commencez par vous connecter à phpMyAdmin.
  2. Ensuite, cliquez sur Bases de données bouton sur la bannière supérieure.
  1. Dans la liste des bases de données, cliquez sur le lien vers la base de données que vous souhaitez exporter. Dans cet exemple, nous avons sélectionné l'utilisateur base de données.
  1. L'écran suivant affiche une liste des tables de cette base de données. Cochez les cases des tableaux que vous souhaitez exporter.
  2. Cliquez sur Exporter bouton sur la bannière.
  1. Laisser la méthode d'exportation définir tel quel. Utilisez le Format menu déroulant pour sélectionner CSV, puis cliquez sur Aller .
  1. Une boîte de dialogue vous invite à spécifier l'emplacement où vous souhaitez enregistrer le fichier CSV.

Exporter de MySQL vers CSV à l'aide de la ligne de commande

Vous pouvez effectuer une exportation simple en sélectionnant toutes les données d'un tableau et en spécifiant l'emplacement où les enregistrer.

Commencez par ouvrir le shell MySQL, puis passez à la base de données que vous souhaitez exporter.

Saisissez l'instruction suivante :

SELECT * FROM myTable
INTO OUTFILE '\tmp\myExportFile.csv'
FIELDS ENCLOSED BY '"'
TERMINATED BY ';'
ESCAPED BY '"'
LINES TERMINATED BY '\r\n';

Remplacer myTable avec le nom réel de la table de votre base de données. Vous pouvez remplacer \tmp\myExportFile.csv avec tout autre nom de fichier ou emplacement. Assurez-vous de conserver le .csv nom de fichier à la fin.

Options supplémentaires pour l'exportation depuis MySQL

Pour spécifier des ensembles de données individuels à exporter depuis une table :

SELECT column1, column2, column3, column4
FROM myTable
WHERE column2 = 'value';

Remplacer column1 (et le reste) avec les noms réels des colonnes que vous souhaitez exporter. Assurez-vous d'utiliser le FROM commande pour spécifier la table à partir de laquelle vous exportez. Le WHERE L'instruction est facultative et permet d'exporter uniquement les lignes contenant une valeur spécifique. Remplacer value avec la valeur réelle que vous souhaitez exporter. Par exemple :

SELECT order_date, order_number, order_status
FROM current_orders
WHERE order_status='pending';

Fichier CSV d'exportation et d'horodatage

Utilisez la commande suivante pour exporter vers un fichier CSV et ajoutez un horodatage pour l'heure à laquelle le fichier a été créé :

SET @TS = DATE_FORMAT(NOW(),'_%Y_%m_%d_%H_%i_%s');
SET @FOLDER = '\tmp';
SET @PREFIX = 'myTable';
SET @EXT    = '.csv';
SET @CMD = CONCAT("SELECT * FROM myTable INTO OUTFILE '",@FOLDER,@PREFIX,@TS,@EXT,
"' FIELDS ENCLOSED BY '\"'
 TERMINATED BY ';'
ESCAPED BY '\"'"," 
LINES TERMINATED BY '\r\n';");
PREPARE statement FROM @CMD;
EXECUTE statement;

Comme d'habitude, remplacez myTable avec le nom réel de la table que vous exportez.

Exporter avec des en-têtes de colonne

Utilisez un UNION déclaration pour ajouter des en-têtes de colonne au fichier exporté :

(SELECT 'column1','column2','column3','column4')
UNION
(SELECT column1, column2, column3, column4
FROM myTable
INTO OUTFILE '\tmp\myExportFile.csv'
FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"'
LINES TERMINATED BY '\r\n')

Traitement des valeurs NULL

S'il y a des valeurs nulles (vides) dans la base de données, ce processus les exporte sous la forme de la lettre N . Vous pouvez remplacer NULL valeurs avec une autre chaîne de texte qui a plus de sens :

SELECT column1, column2, IFNULL(column3, 'N/A')
FROM myTable INTO OUTFILE '\tmp\myExportFile.csv'
FIELDS ENCLOSED BY '"'
TERMINATED BY ';'
ESCAPED BY '"' LINES
TERMINATED BY '\r\n');

Dans ce cas, le IFNULL la commande recherche les valeurs vides dans column3 . Lorsqu'il les trouve, il les remplace par la chaîne de texte N/A .

Exporter MySQL vers CSV à l'aide de mysqldump

Vous pouvez utiliser le mysqldump application pour exporter votre base de données MySQL vers un fichier CSV. Entrez ce qui suit dans une invite de commande :

mysqldump --tab=/var/lib/mysql-files/ --fields-enclosed-by='"' --fields-terminated-by=',' --lines-terminated-by='\n' myTable

Cette commande crée une copie de la base de données myTable dans le /var/lib/mysql-files .

Exporter MySQL vers CSV à l'aide du moteur CSV

Dans certains cas, vous pouvez utiliser le moteur CSV de MySQL pour modifier la table. Cette méthode ne fonctionnera pas si une table MySQL a un index, ou si la table utilise auto_increment . Utilisez la commande suivante :

ALTER TABLE myTable ENGINE=CSV;

Cette instruction modifie le format de la base de données en CSV. Vous pouvez ensuite copier le fichier CSV sur un autre système.


Linux
  1. Comment copier des tables MySQL entre des bases de données

  2. Comment réparer une table de base de données MySQL corrompue

  3. Comment copier une table d'une base de données mysql vers une autre base de données mysql

  4. Comment alimenter les requêtes mysql à partir de bash

  5. Comment puis-je exporter les privilèges de MySQL puis les importer sur un nouveau serveur ?

Comment supprimer une table dans MySQL

Comment utiliser les déclencheurs MySQL

Comment sauvegarder une seule base de données MySQL à partir de la ligne de commande

Comment sauvegarder toutes les bases de données MySQL à partir de la ligne de commande

Comment exporter les résultats de la requête MySQL au format CSV sous Linux

Comment restaurer la base de données MySQL à partir de phpMyAdmin ?