Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como salvar um resultado de consulta MySQL em um arquivo .CSV


Você pode salvar um resultado de consulta em um arquivo .CSV usando o SELECT ... INTO OUTFILE demonstração.

Você especifica o nome/local do arquivo, bem como outras opções, como terminadores de campo, terminadores de linha, etc.



Aqui está um exemplo básico.
SELECT * FROM Customers
INTO OUTFILE '/tmp/customers.csv';

Isso seleciona todas as colunas de Clientes table e os coloca em um arquivo .CSV chamado customers.csv no /tmp diretório.

Extras opcionais


Você pode especificar como campos e linhas são encerrados usando o comando FIELDS TERMINATED e LINES TERMINATED cláusulas.

Você também pode especificar os caracteres para incluir cada valor usando o ENCLOSED BY cláusula.

E você pode usar o FIELDS ESCAPED BY cláusula para controlar como escrever caracteres especiais.

Aqui está a consulta novamente, desta vez usando algumas dessas cláusulas extras:
SELECT * FROM Customers
INTO OUTFILE '/tmp/customers.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

Adicionando cabeçalhos


Os exemplos anteriores gerarão um arquivo .CSV com os resultados da consulta, mas não com os nomes das colunas. Isso significa que o arquivo .CSV não terá cabeçalhos na primeira linha.

Para incluir os nomes das colunas (para que o arquivo .CSV contenha cabeçalhos na primeira linha), você pode codificá-los em outro SELECT declaração, anexada ao resto da consulta por um UNION ALL operador.

Aqui está um exemplo de outra consulta (um pouco mais complexa). Neste exemplo, adicionamos cabeçalhos de coluna ao arquivo .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';

Usando a GUI do MySQL Workbench


Você também pode usar a GUI do MySQL Workbench para exportar os resultados de uma consulta.