GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo exportar una tabla de MySQL a CSV

Introducción

Solo un número limitado de aplicaciones lee tablas MySQL sin formato. Es mucho más probable que un archivo CSV funcione con diferentes aplicaciones de bases de datos. CSV es un formato estándar para bases de datos en el que una coma distingue los valores de diferentes filas y columnas. El beneficio adicional de los archivos CSV es que son legibles por humanos.

Esta guía detallada le mostrará cómo exportar una base de datos MySQL a un archivo CSV.

Requisitos previos

  • Acceso a una línea de comando/ventana de terminal
  • Cuenta de usuario con privilegios de root o sudo
  • Una cuenta de usuario de MySQL con privilegios de root
  • Cuenta phpMyAdmin preconfigurada (opcional)

Exportar MySQL a CSV con phpMyAdmin

La herramienta phpMyAdmin proporciona una interfaz gráfica para administrar sus bases de datos MySQL. Puede usarlo para exportar cualquiera de sus bases de datos rastreadas a un archivo CSV.

  1. Empiece iniciando sesión en phpMyAdmin.
  2. A continuación, haga clic en Bases de datos botón en el banner superior.
  1. En la lista de bases de datos, haga clic en el enlace a la base de datos que desea exportar. En este ejemplo, seleccionamos el usuario base de datos.
  1. La siguiente pantalla muestra una lista de tablas en esa base de datos. Marque las casillas de las tablas que desea exportar.
  2. Haga clic en Exportar botón en el banner.
  1. Dejar método de exportación establecer como está. Usa el Formato menú desplegable para seleccionar CSV, luego haga clic en Ir .
  1. Un cuadro de diálogo le solicita que especifique la ubicación donde desea guardar el archivo CSV.

Exportar de MySQL a CSV usando la línea de comandos

Puede hacer una exportación sencilla seleccionando todos los datos en una tabla y especificando la ubicación para guardarlos.

Comience abriendo el shell de MySQL, luego cambie a la base de datos que desea exportar.

Introduzca la siguiente declaración:

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

Reemplazar myTable con el nombre real de la tabla de su base de datos. Puede reemplazar \tmp\myExportFile.csv con cualquier otro nombre de archivo o ubicación. Asegúrate de mantener el .csv nombre de archivo al final.

Opciones adicionales para exportar desde MySQL

Para especificar conjuntos de datos individuales para exportar desde una tabla:

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

Reemplazar column1 (y el resto) con los nombres reales de las columnas que desea exportar. Asegúrate de usar el FROM comando para especificar la tabla desde la que está exportando. El WHERE La declaración es opcional y permite exportar solo filas que contienen un valor específico. Reemplazar value con el valor real que desea exportar. Por ejemplo:

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

Archivo CSV de exportación y marca de tiempo

Use el siguiente comando para exportar a un archivo CSV y agregue una marca de tiempo para la hora en que se creó el archivo:

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;

Como de costumbre, reemplace myTable con el nombre real de la tabla que está exportando.

Exportar con encabezados de columna

Usa una UNION instrucción para agregar encabezados de columna al archivo exportado:

(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')

Tratar con valores NULL

Si hay valores nulos (vacíos) en la base de datos, este proceso los exporta como la letra N . Puede reemplazar NULL valores con otra cadena de texto que tenga más sentido:

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');

En este caso, el IFNULL El comando busca valores vacíos en column3 . Cuando los encuentra, los reemplaza con la cadena de texto N/A .

Exportar MySQL a CSV usando mysqldump

Puede usar el mysqldump aplicación para exportar su base de datos MySQL a un archivo CSV. Introduzca lo siguiente en un símbolo del sistema:

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

Este comando crea una copia de la base de datos myTable en los /var/lib/mysql-files .

Exportar MySQL a CSV usando el motor CSV

En algunos casos, puede usar el motor CSV en MySQL para cambiar la tabla. Este método no funcionará si una tabla MySQL tiene un índice o si la tabla usa auto_increment . Utilice el siguiente comando:

ALTER TABLE myTable ENGINE=CSV;

Esta declaración cambia el formato de la base de datos a CSV. Luego puede copiar el archivo CSV a otro sistema.


Linux
  1. Cómo copiar tablas MySQL entre bases de datos

  2. Cómo reparar una tabla de base de datos Mysql dañada

  3. Cómo importar una base de datos de exportación en MYSQL MariaDB

  4. Cómo copiar una tabla de una base de datos mysql a otra base de datos mysql

  5. ¿Cómo puedo exportar los privilegios de MySQL y luego importarlos a un nuevo servidor?

Cómo soltar una tabla en MySQL

Cómo usar disparadores de MySQL

Cómo hacer una copia de seguridad de una sola base de datos MySQL desde la línea de comandos

Cómo hacer una copia de seguridad de todas las bases de datos MySQL desde la línea de comandos

Cómo exportar resultados de consultas MySQL a formato CSV en Linux

¿Cómo restaurar la base de datos MySQL desde phpMyAdmin?