Voltar para a lista de artigos Artigos
9 minutos de leitura

Como importar um arquivo CSV para um banco de dados MySQL

Os arquivos CSV armazenam e transferem dados entre bancos de dados. Continue lendo para descobrir como é fácil trabalhar com arquivos CSV em um banco de dados MySQL.

Os arquivos CSV são um dos formatos mais antigos de troca de dados e ainda são muito usados por profissionais de TI de vários domínios. É comum que recursos de dados on-line e diferentes softwares de banco de dados ofereçam seus uploads e downloads de dados no formato CSV.

Neste artigo, faremos uma breve revisão do que é um arquivo CSV e como trabalhar com ele. Você aprenderá a importar um arquivo CSV para um banco de dados MySQL usando uma ferramenta de linha de comando ou uma interface gráfica de usuário como o MySQL Workbench. Embora a última seja muito mais rápida e fácil, é importante conhecer e praticar ambas.

Se você nunca trabalhou com um banco de dados MySQL antes, não deixe de conferir nossos cursos interativos:

Ambos os cursos terminam com um teste para que você possa verificar o quanto aprendeu. Você também pode seguir este artigo para saber como instalar um banco de dados MySQL em um PC com Windows. Isso não é necessário para nenhum dos cursos, mas ter um banco de dados MySQL em seu computador lhe dará algo para praticar mais tarde.

Então, vamos começar com nossa análise do formato de arquivo CSV.

Sobre arquivos CSV

CSV significa "Comma-Separated Values" (valores separados por vírgula). Um arquivo CSV é um arquivo de texto que armazena dados tabulares. Cada linha de um arquivo CSV representa uma linha de uma tabela. Normalmente, os valores das colunas são separados por vírgula (daí o nome, valores separados por vírgula), mas você pode usar outros separadores, como ponto e vírgula ou tabulação. Normalmente, a primeira linha de um arquivo CSV armazena os cabeçalhos das colunas e as linhas seguintes armazenam os dados.

Agora você pode se perguntar o que acontece se um valor contiver um caractere de vírgula. Ele é tratado como um caso especial: o valor é envolvido por aspas duplas. Por exemplo, o valor 12.34 fica sem aspas duplas, mas o valor 12,34 deve ser escrito como "12,34" para evitar que seja considerado como dois valores (12 e 34) em vez de um valor (12,34).

Vamos dar uma olhada em um exemplo de arquivo CSV chamado countries.csv que importaremos posteriormente para o banco de dados MySQL.

id,country,population,capital
1,USA,"329,500,000",Washington D.C.
2,Canada,"38,010,000",Ottawa
3,UK,"67,220,000",London
4,Spain,"47,350,000",Madrid
5,Greenland,"56,367",Nuuk

Talvez não seja tão claro quanto uma tabela, mas você pode ver o padrão. A primeira linha armazena cabeçalhos de coluna separados por vírgulas e as linhas seguintes armazenam valores separados por vírgulas. Observe que qualquer valor que contenha um caractere de vírgula é colocado entre aspas duplas.

E aqui está uma tabela baseada no arquivo countries.csv:

idcountrypopulationcapital
1USA329,500,000Washington D.C.
2Canada38,010,000Ottawa
3UK67,220,000London
4Spain47,350,000Madrid
5Greenland56,367Nuuk

Por que importar um arquivo CSV para um banco de dados?

Os arquivos CSV usam um formato de texto simples para armazenar dados. Os bancos de dados relacionais e os arquivos CSV foram desenvolvidos pela primeira vez na mesma época, na década de 1970. Desde então, os arquivos CSV têm sido usados para transferir dados entre bancos de dados.

Podemos exportar dados em um formato de arquivo CSV de um banco de dados e importá-los nesse formato para outro banco de dados (por exemplo, para processamento e análise adicionais). Além disso, vários recursos de dados on-line e ferramentas de banco de dados oferecem uploads e downloads de dados no formato CSV. Portanto, o CSV é um formato de arquivo muito comum para a transferência de dados.

O processo de importação de arquivos CSV é rápido e direto. É muito melhor do que criar uma tabela e inserir os dados manualmente. É por isso que os arquivos CSV, apesar de sua natureza simples, desempenham um papel tão importante no processamento e na análise de dados.

Importação de um arquivo CSV para um banco de dados MySQL

No banco de dados MySQL, há duas opções para importar um arquivo CSV. Uma é usar uma ferramenta de linha de comando e a outra é usar uma interface gráfica do usuário (GUI). Vamos dar uma olhada em cada uma delas.

Importação de um arquivo CSV para o MySQL usando a linha de comando

Siga as etapas abaixo para importar um arquivo CSV para o banco de dados MySQL por meio da ferramenta de linha de comando.

Conexão a um banco de dados

Supondo que você tenha um banco de dados MySQL em funcionamento instalado em seu computador, é possível usar o cliente de linha de comando MySQL (mostrado abaixo):

Importar um arquivo CSV para um banco de dados MySQL

Você pode conectar seu banco de dados executando o comando mysql --host=localhost --user=username --password e fornecendo uma senha:

Importar um arquivo CSV para um banco de dados MySQL

Observe que tanto o cliente de linha de comando do MySQL quanto a ferramenta de linha de comando padrão fornecem o mesmo prompt do mysql.

Importação de um arquivo CSV

Antes de importar um arquivo CSV, você precisa criar uma tabela manualmente com os tipos de dados adequados para cada coluna.

Portanto, primeiro vamos criar um novo esquema usando o comando CREATE SCHEMA. Em seguida, executaremos o comando USE para garantir que você esteja dentro do esquema recém-criado. Por último, criaremos uma nova tabela usando o comando CREATE TABLE.

CREATE SCHEMA data;
USE data;
CREATE TABLE `countries` (
`id` int DEFAULT NULL,
`country` text,
`population` text,
`capital` text);

O comando CREATE SCHEMA seguido de um nome de esquema cria um novo esquema chamado data. E o comando USE seguido de um nome de esquema garante que trabalhemos dentro do esquema recém-criado. Depois de concluir isso, criamos uma nova tabela usando o comando CREATE TABLE.

Agora podemos carregar a tabela countries com os dados do nosso arquivo CSV.

LOAD DATA INFILE 'countries.csv'
INTO TABLE countries
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

Esse comando especifica o seguinte:

  • O arquivo do qual os dados são carregados: LOAD DATA INFILE 'countries.csv'
  • A tabela na qual os dados são carregados: INTO TABLE countries
  • O caractere que separa os valores: FIELDS TERMINATED BY ','

Observe que, se você usar um separador diferente, como ponto e vírgula ou tabulação, deverá atualizar essa linha para incluir o caractere de separação: FIELDS TERMINATED BY ';' ou FIELDS TERMINATED BY '  '

  • Se alguns ou todos os valores estiverem entre aspas duplas, inclua esta linha: ENCLOSED BY '"'
  • O caractere que encerra as linhas: LINES TERMINATED BY '\n'
  • A informação para ignorar a primeira linha, que contém o cabeçalho: IGNORE 1 ROWS;

Aqui está a saída do console de todos os comandos:

Importar um arquivo CSV para um banco de dados MySQL

Vamos verificar o processo de importação executando a instrução SELECT.

A linha de comando retorna um conjunto de dados adequado, embora a formatação possa ser alterada:

Importar um arquivo CSV para um banco de dados MySQL

Vamos verificar o mesmo usando a interface GUI.

Importar um arquivo CSV para um banco de dados MySQL

Agora temos certeza de que o processo de importação foi bem-sucedido.

Vamos ver como fazer o mesmo usando a GUI.

Usando uma GUI do MySQL

Usaremos o MySQL Workbench, uma das GUIs mais populares para o MySQL. Siga as etapas abaixo para importar um arquivo CSV para um banco de dados MySQL por meio da interface gráfica do usuário.

Conexão de um banco de dados

No MySQL Workbench, você pode se conectar a qualquer banco de dados clicando no sinal + ao lado de MySQL Connections na página inicial. É exibida uma janela que solicita que você forneça detalhes da conexão, como nome da conexão, método de conexão, nome do host, porta, nome de usuário e senha.

Importar um arquivo CSV para um banco de dados MySQL

Agora, teste sua conexão clicando no botão Test Connection (Testar conexão ). Forneça a senha e, após um teste bem-sucedido, você receberá esta mensagem:

Importar um arquivo CSV para um banco de dados MySQL

Feche as duas janelas clicando no botão OK. Agora podemos prosseguir com a importação de um arquivo CSV.

Importação de um arquivo CSV

Quando você usa uma GUI, não precisa criar uma tabela antes de importar um arquivo CSV.

A primeira etapa é criar um novo esquema (se você quiser usar um novo esquema em vez de um esquema existente). Você pode fazer isso de duas maneiras:

  • Execute o comando CREATE SCHEMA na janela de consulta: Importar um arquivo CSV para um banco de dados MySQL
  • Crie um esquema na interface GUI: Importar um arquivo CSV para um banco de dados MySQL

Depois disso, clique com o botão direito do mouse nas tabelas sob o nome do esquema e escolha a opção Table Import Data Wizard (Assistente de importação de dados de tabela ).

Importar um arquivo CSV para um banco de dados MySQL

Será exibida uma janela que o guiará pelo processo de importação.

Agora, escolha o arquivo CSV que você deseja importar e clique em Next (Avançar).

Importar um arquivo CSV para um banco de dados MySQL

Você pode usar uma tabela existente (essa opção exige que você crie uma tabela antes do processo de importação) ou criar uma nova tabela. Aqui, optamos por criar uma nova tabela.

Importar um arquivo CSV para um banco de dados MySQL

O MySQL Workbench detecta o formato do arquivo e sugere a codificação e os tipos de dados de coluna a serem usados. Você pode modificá-los como achar melhor, mas continuaremos com os valores sugeridos.

Importar um arquivo CSV para um banco de dados MySQL

Aqui está o resumo das tarefas que serão executadas:

Importar um arquivo CSV para um banco de dados MySQL

E está pronto!

Importar um arquivo CSV para um banco de dados MySQL

Ao clicar no botão Next, você receberá um relatório detalhado.

Importar um arquivo CSV para um banco de dados MySQL

Agora, podemos fechar o assistente clicando no botão Finish (Concluir ).

Vamos verificar o sucesso do processo de importação consultando nossa tabela recém-criada.

Importar um arquivo CSV para um banco de dados MySQL

Não há dúvida de que a importação de um arquivo CSV usando a GUI é mais rápida e menos incômoda do que a importação por linha de comando, mas é bom saber que ambas são possíveis.

Para comparar os processos de importação de arquivos CSV em diferentes mecanismos de banco de dados, leia nosso artigo sobre Como importar CSVs para o PostgreSQL usando o PgAdmin. E para saber mais sobre o processo de exportação, How to Export a CSV File From a T-SQL Query (Como exportar um arquivo CSV de uma consulta T-SQL ) apresenta o processo de exportação de um arquivo CSV no mecanismo de banco de dados MS SQL Server.

Vamos importar alguns arquivos CSV!

Os arquivos CSV são amplamente usados devido à sua simplicidade. Você pode criar um arquivo CSV usando um editor de texto simples, como o Notepad. Os arquivos CSV podem usar ponto e vírgula em vez de vírgulas ou colocar valores entre aspas duplas ou não.

Como vimos neste artigo, é fácil importar arquivos CSV para um banco de dados MySQL. Você pode usar a linha de comando ou uma GUI. A melhor maneira de se sentir confortável com qualquer uma das opções é praticar, portanto, vá em frente e experimente este e outros exemplos. Você também pode utilizar nossos cursos interativos de MySQL para aprender mais sobre esse banco de dados. Aqui você encontrará uma visão geral dos cursos em nossa trilha SQL de A a Z in MySQL.

Boa sorte!