seabeck.pages.dev

Como exportar resultado de query SQL para CSV via CLI?

Exportar dados diretamente do banco de dados para um arquivo CSV via linha de comando é uma das tarefas mais eficientes para automatizar relatórios e processamentos em lote. Este método elimina a necessidade de interfaces gráficas, reduzindo o tempo de execução e evitando erros manuais de exportação.

Pré-requisitos

Usando MySQL/MariaDB

Para exportar o resultado de uma query SQL para CSV usando o cliente MySQL, utilize o comando SELECT ... INTO OUTFILE. Este método cria o arquivo diretamente no servidor do banco de dados.

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

Usando PostgreSQL

No PostgreSQL, a abordagem mais comum é usar a ferramenta psql com a opção -c para executar a query e redirecionar a saída para um arquivo CSV.

psql -h localhost -U usuario -d nome_banco -c "COPY (SELECT * FROM tabela_exemplo) TO STDOUT WITH CSV HEADER" > resultado.csv

Usando SQLite

Para o SQLite, o comando .mode e .output do cliente interativo permitem exportar o resultado para CSV.

sqlite3 banco.db <

Exemplo Prático

Considere a tabela vendas com as colunas id, produto, valor e data_venda. O comando a seguir exporta todas as vendas do mês de janeiro de 2024 para um CSV:

Comando Resultado Esperado
psql -h localhost -U admin -d vendas -c "COPY (SELECT * FROM vendas WHERE data_venda BETWEEN '2024-01-01' AND '2024-01-31') TO STDOUT WITH CSV HEADER" > vendas_janeiro.csv Arquivo vendas_janeiro.csv contendo todas as vendas do mês de janeiro, com cabeçalho e valores separados por vírgula.

Conclusão

Com estes comandos, você pode exportar resultados de queries SQL para CSV de forma rápida e automatizada, diretamente do terminal. Este método é ideal para processar grandes volumes de dados ou integrar com outras ferramentas de análise e relatórios.