logo

Exportar tabla MySQL a CSV

MySQL tiene una función para exportar una tabla al archivo CSV. Un formato de archivo CSV es un valor separado por comas que utilizamos para intercambiar datos entre varias aplicaciones como Microsoft Excel, Goole Docs y Open Office. Es útil tener datos MySQL en formato de archivo CSV que nos permita analizarlos y formatearlos de la forma que queramos. Es un archivo de texto plano que nos ayuda a exportar datos de forma muy sencilla.

mysql proporciona una manera fácil de exportar cualquier tabla a archivos CSV que residen en el servidor de la base de datos. Debemos asegurarnos de lo siguiente antes de exportar datos MySQL:

  • El proceso del servidor MySQL tiene acceso de lectura/escritura a la carpeta especificada (destino), que contiene el archivo CSV.
  • El archivo CSV especificado no debería existir en el sistema.

Para exportar la tabla a un archivo CSV, usaremos el SELECCIONAR EN....OUTFILE declaración. Esta declaración es un elogio de la CARGAR DATOS comando, que se utiliza para escribir datos de una tabla y luego exportarlos a un formato de archivo específico en el servidor host. Es para asegurarnos de que tengamos un privilegio de archivo para usar esta sintaxis.

 SELECT column_lists INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/filename.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ''' LINES TERMINATED BY '
'; 

También podemos usar esta sintaxis con una declaración de valores para exportar datos directamente a un archivo. La siguiente declaración lo explica más claramente:

 SELECT * FROM (VALUES ROW(1,2,3,4),ROW(5,6),ROW(7,8)) AS table1 INTO OUTFILE '/tmp/selected_values.txt'; 

Si queremos exportar todas las columnas de la tabla , usaremos la siguiente sintaxis. Con esta declaración, el orden y el número de filas serán controlados por el ORDENAR POR y LÍMITE cláusula.

pseudocódigo java
 TABLE table_name ORDER BY lname LIMIT 1000 INTO OUTFILE '/path/filename.txt' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY '
';; 

De lo anterior,

LÍNEAS TERMINADAS EN ',' : Se utiliza para indicar las líneas de filas de un archivo que terminan con un operador de coma. Cada línea contiene los datos de cada columna del archivo.

CAMPOS ENCERRADOS POR ''' : Se utiliza para especificar el campo del archivo entre comillas dobles. Previene los valores que contienen separadores de coma. Si los valores contenidos entre comillas dobles están marcados, no reconoce la coma como separador.

Ubicación de almacenamiento del archivo exportado

La ubicación de almacenamiento de cada archivo exportado en MySQL se almacena en la variable predeterminada archivo_seguro_priv . Podemos ejecutar el siguiente comando para obtener la ruta predeterminada de un archivo exportado.

 mysql> SHOW VARIABLES LIKE 'secure_file_priv'; 

Después de la ejecución, dará el resultado de la siguiente manera donde podemos ver esta ruta: C:/ProgramData/MySQL/MySQL Server 8.0/Cargas/ como ubicación de archivo predeterminada. Esta ruta se utilizará al momento de ejecutar un comando de exportación.

Exportar tabla MySQL a CSV

Si queremos cambiar la ubicación de exportación predeterminada del archivo CSV especificado en el archivo_seguro_priv variable, necesitamos editar la mi.ini archivo de configuración. En la plataforma Windows, este archivo se encuentra en esta ruta: C:ProgramDataMySQLMySQL Server X.Y .

Si queremos exportar datos de MySQL, primero debemos crear un base de datos con al menos uno mesa . Vamos a utilizar esta tabla como ejemplo.

cómo crear una matriz en java

Podemos crear un base de datos y tabla ejecutando el siguiente código en los editores que estamos usando:

 CREATE DATABASE testdb; USE testdb; CREATE TABLE employee_detail ( ID int NOT NULL AUTO_INCREMENT, Name varchar(45) DEFAULT NULL, Email varchar(45) DEFAULT NULL, Phone varchar(15) DEFAULT NULL, City varchar(25) DEFAULT NULL, PRIMARY KEY (ID), UNIQUE KEY unique_email (Email), UNIQUE KEY index_name_phone (Name,Phone) ) INSERT INTO employee_detail ( Id, Name, Email, Phone, City) VALUES (1, 'Peter', '[email protected]', '49562959223', 'Texas'), (2, 'Suzi', '[email protected]', '70679834522', 'California'), (3, 'Joseph', '[email protected]', '09896765374', 'Alaska'), (4, 'Alex', '[email protected]', '97335737548', 'Los Angeles'), (5, 'Mark', '[email protected]', '78765645643', 'Washington'), (6, 'Stephen', '[email protected]', '986345793248', 'New York'); 

Si ejecutamos el SELECCIONAR declaración, veremos el siguiente resultado:

Exportar tabla MySQL a CSV

Exporte datos MySQL en formato CSV usando la instrucción SELECT INTO... OUTFILE

Para exportar los datos de la tabla a un archivo CSV, debemos ejecutar la consulta de la siguiente manera:

 SELECT Id, Name, Email, Phone, City FROM employee_detail INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/employee_backup.csv' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY '
'; 

Obtendremos el siguiente resultado, donde podemos ver que seis filas están afectadas. Esto se debe a que la tabla especificada contiene solo seis filas.

teoría de los autómatas
Exportar tabla MySQL a CSV

Si ejecutamos la misma declaración nuevamente, MySQL produce un mensaje de error que se puede ver en el siguiente resultado:

Exportar tabla MySQL a CSV

El mensaje de error nos dice que el nombre del archivo especificado ya existe en la ubicación especificada. Así, si exportamos el nuevo archivo CSV con el mismo nombre y ubicación, no se podrá crear. Podemos resolver esto eliminando el archivo existente en la ubicación especificada o cambiando el nombre del archivo para crearlo en el mismo lugar.

Podemos verificar el archivo CSV creado en la ubicación especificada o no navegando a una ruta determinada de la siguiente manera:

Exportar tabla MySQL a CSV

Cuando abramos este archivo, se verá como la imagen de abajo:

Exportar tabla MySQL a CSV

En la imagen podemos ver que los campos numéricos están entre comillas. Podemos cambiar este estilo agregando Cláusula OPCIONALMENTE antes de ENCLOSED BY :

 SELECT Id, Name, Email, Phone, City FROM employee_detail INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/employee_backup.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ''' LINES TERMINATED BY '
'; 

Exportación de datos con encabezado de columna

A veces queremos exportar datos junto con encabezados de columna que hagan que el archivo sea conveniente. El archivo exportado es más comprensible si la primera línea del archivo CSV contiene los encabezados de las columnas. Podemos agregar los encabezados de las columnas usando el UNIÓN TODOS declaración de la siguiente manera:

 SELECT 'Id', 'Name', 'Email', 'Phone', 'City' UNION ALL SELECT Id, Name, Email, Phone, City FROM employee_detail INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/employee_backup.csv' FIELDS TERMINATED BY ';' ENCLOSED BY ''' ESCAPED BY ''' LINES TERMINATED BY '
'; 

En esta consulta, podemos ver que hemos agregado un encabezado para cada nombre de columna. Podemos verificar el resultado navegando a la URL especificada donde la primera línea contiene el encabezado de cada columna:

Exportar tabla MySQL a CSV

Exportar tabla MySQL en formato CSV

MySQL OUTFILE también nos permite exportar la tabla sin especificar ningún nombre de columna. Podemos utilizar la siguiente sintaxis para exportar la tabla en un formato de archivo CSV:

 TABLE employee_detail ORDER BY City LIMIT 1000 INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/employee_backup.csv' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY '
'; 

Si ejecutamos la declaración anterior, nuestra herramienta de línea de comandos produce el siguiente resultado. Significa que la tabla especificada contiene seis filas, que se exportaron en empleado_backup.csv archivo.

Exportar tabla MySQL a CSV

Manejo de valores nulos

A veces, los campos del conjunto de resultados tienen valores NULL, entonces el archivo de destino (tipo de archivo exportado) contendrá N en lugar de NULL. Podemos solucionar este problema reemplazando el valor NULL por 'no aplicable (N/A)' utilizando el IFNULL función. La siguiente declaración lo explica más claramente:

 SELECT Name, Email, Phone, IFNULL(Phone, 'N/A') FROM employee_detail INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/employee_backup.csv' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY '
'; 

Exportar tabla a formato CSV usando MySQL Workbench

Si no queremos acceder al servidor de la base de datos para exportar el archivo CSV, MySQL proporciona otra forma, es decir, usar MySQL Workbench. Workbench es una herramienta GUI para trabajar con bases de datos MySQL sin utilizar una herramienta de línea de comandos. Nos permite exportar el conjunto de resultados de una declaración a un formato CSV en nuestro sistema local. Para hacer esto, debemos seguir los siguientes pasos:

  • Ejecute la declaración/consulta y obtenga su conjunto de resultados.
  • Luego, en el panel de resultados, haga clic en 'exportar conjunto de registros a un archivo externo' opción. El conjunto de registros se utiliza para el conjunto de resultados.
  • Finalmente, se mostrará un nuevo cuadro de diálogo. Aquí, debemos proporcionar un nombre de archivo y su formato. Después de completar el detalle, haga clic en el Ahorrar botón. La siguiente imagen lo explica más claramente:
Exportar tabla MySQL a CSV

Ahora podemos verificar el resultado navegando a la ruta especificada.

lista de fuentes gimp