sql >> Base de Datos >  >> RDS >> Mysql

Cómo guardar el resultado de una consulta MySQL en un archivo .CSV

Puede guardar el resultado de una consulta en un archivo .CSV usando SELECT ... INTO OUTFILE declaración.

Usted especifica el nombre/ubicación del archivo, así como otras opciones, como terminadores de campo, terminadores de línea, etc.

Este es un ejemplo básico.

SELECT * FROM Customers
INTO OUTFILE '/tmp/customers.csv';

Esto selecciona todas las columnas de Clientes table y los coloca en un archivo .CSV llamado customers.csv en el /tmp directorio.

Accesorios opcionales

Puede especificar cómo se terminan los campos y las líneas utilizando el FIELDS TERMINATED y LINES TERMINATED cláusulas.

También puede especificar los caracteres para encerrar cada valor utilizando el ENCLOSED BY cláusula.

Y puede usar FIELDS ESCAPED BY cláusula para controlar cómo escribir caracteres especiales.

Aquí está la consulta nuevamente, esta vez usando algunas de esas cláusulas adicionales:

SELECT * FROM Customers
INTO OUTFILE '/tmp/customers.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

Agregar encabezados

Los ejemplos anteriores generarán un archivo .CSV con los resultados de la consulta, pero no con los nombres de las columnas. Esto significa que el archivo .CSV no tendrá encabezados en la primera línea.

Para incluir los nombres de las columnas (para que el archivo .CSV contenga encabezados en la primera línea), puede codificarlos en otro SELECT instrucción, antepuesta al resto de la consulta por UNION ALL operador.

Aquí hay un ejemplo de otra consulta (un poco más compleja). En este ejemplo, agregamos encabezados de columna al archivo .CSV:

/* Add column headers */
SELECT 'OrderId','CustomerID','EmployeeID','OrderDate','RequiredDate','ShippedDate','ShipVia','Freight','ShipName','ShipAddress','ShipCity','ShipRegion','ShipPostalCode','ShipCountry','OrderID','ProductId','UnitPrice','Quantity','Discount'

UNION ALL

/* Now the actual query */
SELECT o.OrderId, o.CustomerID, o.EmployeeID, o.OrderDate, o.RequiredDate, o.ShippedDate, o.ShipVia, o.Freight, o.ShipName, o.ShipAddress, o.ShipCity, o.ShipRegion, o.ShipPostalCode, o.ShipCountry, od.OrderID, od.ProductId, od.UnitPrice, od.Quantity, od.Discount 

FROM `Orders` o  LEFT JOIN `Order Details` od ON od.OrderID = o.OrderID 

/* Save the query results to a file */
INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

Uso de la GUI de MySQL Workbench

También puede usar la GUI de MySQL Workbench para exportar los resultados de una consulta.