Exportar datos de MySQL a un archivo CSV

Preet Sanghavi 20 enero 2022
Exportar datos de MySQL a un archivo CSV

Este tutorial presentará cómo guardar el resultado de una consulta MySQL en un archivo CSV.

MySQL tiene una técnica sencilla para exportar la salida de una consulta seleccionada a un archivo de texto o CSV en el servidor. Usando comandos intrincados como INTO OUTFILE, podemos escribir rápida y eficientemente en un archivo CSV.

Creemos una tabla y almacenemos sus resultados en un archivo CSV.

Sin embargo, antes de comenzar, creamos un conjunto de datos ficticio para trabajar. Aquí creamos una tabla, student_details, junto con algunas filas en ella.

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

La consulta anterior crea una tabla junto con filas con el nombre y apellido del estudiante. Para ver las entradas en los datos, usamos el siguiente código:

SELECT * FROM student_details;

El código anterior daría el siguiente resultado.

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

Ahora, intentemos guardar los resultados de la consulta anterior en un archivo CSV separado.

Exportación de MySQL a CSV

Uno de los métodos más básicos para exportar datos MySQL a CSV es utilizar la palabra clave OUTFILE. Podemos hacer uso de esta palabra clave como se muestra a continuación:

-- Exporting data into students.csv file
SELECT stu_id, stu_firstName, stu_lastName
FROM student_details
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/abc.csv';

El código anterior escribe la salida de la consulta en un archivo llamado abc.csv en el directorio C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/.

Nota: El archivo de salida puede estar presente o no en la carpeta Cargas de MySQL Server 8.0 en los datos del programa. Una vez que ejecutamos el código anterior, se crea un archivo con los datos incrustados en él.

La salida del código mencionado anteriormente genera el siguiente archivo:

Creación de archivos CSV

Los datos del archivo mencionado anteriormente se pueden ver de la siguiente manera:

Vista del archivo CSV

También podemos intentar formatear la salida dentro del archivo CSV. Esto se puede hacer con la ayuda de los comandos FIELDS TERMINATED BY, ENCLOSED BY '""' y LINES TERMINATED BY. Podemos usar estos comandos de la siguiente manera:

-- Exporting data into students.csv file
SELECT *
FROM student_details
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/abc.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

La salida del código anterior da como resultado el archivo CSV de la siguiente manera:

Vista del archivo CSV actualizado

Como podemos ver, la salida en la imagen de arriba está formateada correctamente con un archivo separado por tabulaciones.

Por lo tanto, con la ayuda de los métodos anteriores, podemos exportar nuestros datos de manera eficiente a un archivo CSV. Para localizar este archivo CSV, podemos seguir la ruta dada en el comando INTO OUTFILE en los bloques de código mencionados anteriormente.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub