4

Exporte su MySQL data a CSV

Muchos desarrolladores de bases de datos desean exportar datos de MySQL que obtuvieron como resultado de una consulta ejecutada a un archivo CSV, XML, JSON o HTML.

En este artículo, se mostrarán dos formas diferentes de exportar datos MySQL a un archivo CSV.

La primera forma es utilizando SELECT INTO… OUTFILE y la segunda forma es utilizando la opción Exportar a CSV de la extensión ApexSQL Database Power Tools para VS Code .

Los archivos de valores separados por comas (CSV) son muy útiles para intercambiar datos entre aplicaciones como Microsoft Excel, Google Docs, etc. Además, cuando los datos se exportan al formato de archivo CSV, se pueden utilizar para análisis y se pueden formatear en la forma que tu quieras.

Antes de comenzar a exportar datos MySQL, primero creemos una base de datos con una tabla, que se usará como ejemplo.

Copie y ejecute el código siguiente en algunos de los editores de código:

CREATEDATABASE'addresses';

USE addresses;


CREATETABLE'location' (
  'address_id'intNOTNULL AUTO_INCREMENT,
  'address'varchar(50) NOTNULL,
  'address2'varchar(50) DEFAULTNULL,
  PRIMARY KEY ('address_id')
);


INSERTINTO location VALUES
(NULL, '1586 Guaruj Place', '47 MySakila Drive'),
(NULL, '934 San Felipe de Puerto Plata Street', NULL),
(NULL, '360 Toulouse Parkway', '270, Toulon Boulevard');

En cuanto a un editor de código, utilizo Visual Studio Code y, para conectarme al servidor MySQL , utilizo la extensión ApexSQL Database Power Tools para VS Code .

Exporte datos de MySQL a un archivo CSV usando la instrucción SELECT INTO… OUTFILE

La instrucción SELECT… INTO OUTFILE se utiliza para escribir los datos de la instrucción SELECT en un archivo.

Entonces, creemos un comando de exportación usando la instrucción SELECT… INTO OUTFILE y exportemos los datos a la ubicación y al formato de archivo deseados.

Ejecute el siguiente código:

SELECT
address,
address2,
address_id
FROM location INTOOUTFILE'C:\ProgramData\MySQL\location.csv';

Después de ejecutar el código anterior, puede aparecer el siguiente mensaje (error):

Access denied; you need (at least one of) the FILE privilege(s) for this operation

Para exportar datos desde el servidor MySQL, un usuario que está conectado a un servidor MySQL necesita tener privilegios de.Archivo

Para ver qué privilegios tiene un usuario actual, ejecute el siguiente comando:

SHOWGRANTSFORCURRENT_USER();

Para agregar los privilegios de ARCHIVO , ejecute el siguiente código:

GRANTFILEON *.* TO'jack'@'localhost';

Ahora, cuando el usuario tenga todos los privilegios necesarios, ejecute nuevamente la instrucción SELECT … INTO OUTFILE:

SELECT
address,
address2,
address_id
FROM location INTOOUTFILE'C:\ProgramData\MySQL\location.csv';

Exportar datos MySQL utilizando software de terceros

ApexSQL Database Power Tools para VS Code es una extensión de Visual Studio Code que permite a los usuarios conectarse a instancias de MySQL y MariaDB, ejecutar y mostrar resultados de consultas, exportar resultados de consultas a formatos de archivo XLSX, CSV, HTML, JSON y generar scripts DDL y DML desde el explorador del servidor ApexSQL. Todo esto es posible en múltiples plataformas informáticas como Windows, Linux y macOS.

Para exportar datos de MySQL a formato de archivo CSV, en el editor de consultas, ejecute una consulta cuyos resultados quieran exportar:

En la esquina superior derecha de la cuadrícula de resultados de la consulta , haga clic en el botón Exportar a CSV . En el cuadro de diálogo Guardar como , elija una ubicación para exportar datos, ingrese un nombre para el archivo CSV y haga clic en el botón Guardar :

Los datos exportados serán similares a esto:

Escribe tu comentario
+ 2
1

Gracias , de verdad gracias por excribir este tutorial me fue de gran ayuda solo uq me gustaría agregar un par de cosas para que a día de hoy es decir Marzo casi Abril de 2022 podamos de scar un query a un csv lo primero será
usar esta sintraxis pero tenemos que añadir cosas 👇

SELECT *
FROM posts
INTOOUTFILE'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/report.csv'FIELDSTERMINATEDBY'#'ENCLOSEDBY'"'LINESTERMINATEDBY'\n';

Las úlimas tres lineas desde fields hasta lines son importanes si no lo hacen tal cuál no funciona primero este código no funciona!

SELECT 
address,
address2,
address_id
FROM location INTOOUTFILE'C:\ProgramData\MySQL\location.csv';

Porque ? 🤔 te estarás preguntado pues resulta que hay una configuración llamada --secure-file-priv que fue anñadida por lo que ahora el código de arriba no funciona ya que al momento que quererexportar a csv maracará un error 1209 entonces usen la ruta que les deje que es 👉'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/nombre_de_tu_archivo.csv'
En esta ruta si funciona revisen el nombre de su version en mi caso es la 8 si ya está más actualizada pues solo cambien el numerito, luego si no usan la sentecia field enclose y lines tampoco servirá !1, porque?, pues no estoy al 100% seguro pero tengo la teoría de que es porque son parametros que se le tienen que pasar por ejemplo como va a ser el salto de linea que van en comillas etc. en fin espero que este tutorial les haya ayudado y si conocen algún curso de Platzi que explique esto de como exportar a csv se los agradeceríaun montón! gracias y nunca parende aprender! 💪💚🚀