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';
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';
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';
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.
Prefere assistir a uma aula? Então assista ao vídeo da Bóson Treinamentos no YouTube sobre Arquivos CSV no MySQL:
Colabore com a Bóson Treinamentos
Ajude o canal adquirindo meus cursos na Udemy:
- Bancos de Dados com MySQL Básico: https://bit.ly/35QdWE4
- Lógica de Programação com Português Estruturado: https://bit.ly/3QKPn22
- Programação em Python do Zero: https://bit.ly/python-boson
Adquira também livros e outros itens na loja da Bóson Treinamentos na Amazon e ajude o canal a se manter e crescer: https://www.amazon.com.br/shop/bosontreinamentos
Escreva um comentário