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.