Como Exportar Dados de uma Tabela como Arquivo CSV no MySQL

Exportar dados de uma tabela como arquivo CSV no MySQL

Em um artigo anterior mostrei como carregar um arquivo CSV em uma tabela no MySQL. Agora vou mostrar como realizar o processo inverso – como exportar os dados de uma tabela de um banco de dados MySQL para um arquivo CSV, usando declarações SQL.

Para tal usaremos a declaração SQL INTO OUTFILE (literalmente, “dentro de um arquivo externo“), cuja sintaxe básica é a seguinte:

SELECT colunas
FROM tabela
INTO OUTFILE 'caminho/arquivo.csv'
FIELDS TERMINATED BY 'delimitador'
ENCLOSED BY 'caractere'
LINES TERMINATED BY 'tipo_quebra';

Onde temos que:

  • SELECT – Aqui informamos os nomes das colunas que farão parte do arquivo CSV
  • FROM – Especificamos a tabela a ser consultada (para incluir dados de mais de uma tabela, podemos usar INNER JOIN)
  • INTO OUTFILE – Determina o nome do arquivo e local onde o conteúdo da tabela será exportado no formato CSV.
  • FIELDS TERMINATED BY – Aqui devemos informar qual delimitador (separador de campos) é desejado no arquivo CSV.
  • ENCLOSED BY – Usado para especificar que aspas duplas “” englobam valores de dados
  • LINES TERMINATED BY – Especifica o código ou caractere usado para indicar quebra de linha.

Vamos a alguns exemplos de exportação de arquivos CSV no MySQL.

Exemplo 01

Vejamos um exemplo, usando a tabela de autores que importamos na lição passada. Vamos exportar o conteúdo dessa tabela para um arquivo CSV de nome autores_bkp.csv:

SELECT ID_autor, Nome_Autor, Sobrenome_Autor
FROM tbl_autores
INTO OUTFILE 'C:/SQL/autores_bkp.csv';
Exportar arquivo CSV de tabela em banco MySQL

Tabela exportada como CSV

Se nenhuma opção for informada, será empregado o caractere de tabulação como delimitador, por padrão.

Exemplo 02

Podemos especificar um delimitador diferente e outras configurações da seguinte forma:

SELECT ID_autor, Nome_Autor, Sobrenome_Autor
FROM tbl_autores
INTO OUTFILE 'C:/SQL/autores_bkp.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
Exportar arquivo CSV de tabela em banco MySQL

Tabela exportada com opções diferentes

Neste caso usamos a vírgula como delimitador, e as aspas duplas “” para englobar os valores de dados.

Exemplo 03

E se quisermos incluir também os nomes das colunas como títulos? Neste caso, podemos usar a declaração UNION, como segue:

(SELECT 'ID_autor', 'Nome_Autor', 'Sobrenome_Autor')
UNION
SELECT ID_autor, Nome_Autor, Sobrenome_Autor
FROM tbl_autores
INTO OUTFILE 'C:/SQL/autores_bkp.csv'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
Exportar arquivo CSV de tabela em banco MySQL

Tabela exportada com CSV com cabeçalhos de colunas

Note agora que a primeira linha do arquivo contém nomes de colunas, conforme informado na primeira declaração SELECT, antes da palavra-chave UNION. Não usei nesse caso as aspas duplas para englobar os dados (opção ENCLOSED BY).

É isso aí! Mostrei um processo simples para salvar os dados de tabelas do MySQL em um arquivo separado por vírgulas (CSV), com alguns exemplos de codificação, que pode ser aberto em editores de planilhas ou ainda importado em outros bancos de dados.

Sobre Fábio dos Reis (1198 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*