Bóson Treinamentos em Ciência e Tecnologia

Como carregar um arquivo CSV em tabela no MySQL

Como carregar um arquivo CSV em um banco de dados MySQL

Carregar arquivo CSV em tabela no MySQL

Um arquivo .csv (comma-separated values / valores separados por vírgulas) é um arquivo de texto que contém dados tabulares organizados em colunas, separados por um caractere delimitador de campos, que geralmente é uma vírgula (daí seu nome), mas que pode ser outro caractere qualquer, como ponto-e-vírgula, tabulação ou mesmo espaços simples.

A grande vantagem de usar arquivos csv é que eles podem ser criados facilmente em qualquer editor de textos, ou mesmo exportados a partir de planilhas eletrônicas, como o Microsoft Excel ou LibreOffice Calc, e assim nos permitem criar arquivos de dados de grande volume com rapidez e simplicidade.

Neste tutorial vou mostrar como é possível usar um arquivo csv para carregar (inserir) dados em uma tabela de banco de dados no MySQL. Para tal usaremos a declaração LOAD DATA INFILE.

O arquivo .csv

Vou usar um arquivo csv simples para carregar dados em uma tabela de autores de livros que contém três campos: ID do autor, Nome do autor e Sobrenome do autor, nesta ordem, usando o banco de dados db_biblioteca que usamos em outras lições.

Crie o arquivo usando um editor de textos ou planilha de sua preferência – mas certifique-se de salvá-lo com a extensão .csv, ou o processo de importação de registros irá falhar.

A seguir o conteúdo do arquivo de exemplo:

ID,Nome,Sobrenome
1,Carl,Sagan
2,Fábio,dos Reis
3,Umberto,Eco
4,Michael,Crichton
5,Stephen,Hawking
6,John,Emsley

A primeira linha contém cabeçalhos para identificação do conteúdo de cada coluna (para não nos confundirmos e é opcional – o MySQL não se importa com isso).

Eu salvei esse arquivo com o nome de “autores.csv“, no diretório C:\SQL de meu computador. Salve-o onde achar mais conveniente, mas lembre-se do caminho do arquivo, pois ele será necessário ao rodar a importação dos dados no banco.

Sintaxe

LOAD DATA INFILE 'caminho/do/arquivo.csv'
INTO TABLE nome_tabela
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

Onde:

Observação: a opção LOAD DATA INFILE tem de usar a barra / em vez de \, mesmo no Windows.

Exemplo

Vamos ao nosso exemplo. Para carregar os dados presentes no arquivo autores.csv na tabela de autores, usaremos a declaração LOAD DATA INFILE como segue:

LOAD DATA INFILE 'C:/SQL/autores.csv'
INTO TABLE tbl_autores
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

Para verificar se os dados foram realmente carregados na tabela, basta fazer uma consulta simples com SELECT:

SELECT * FROM tbl_autores;

Resultado:

Registros inseridos com sucesso.

Como podemos ver, os ados foram carregados (inseridos) com sucesso na tabela de autores do banco de dados. Mas, e se quiséssemos realizar o processo inverso – gerar um arquivo CSV a partir do conteúdo presente em uma tabela qualquer?

É isso o que mostrarei como fazer na próxima lição.

 

Sair da versão mobile