Como Importar Arquivos CSV para o MySQL: Guia Passo a Passo com Exemplos

1. Introdução à Importação de Arquivos CSV no MySQL

Importar arquivos CSV no MySQL é uma maneira poderosa de otimizar o gerenciamento de dados e eliminar a necessidade de entrada manual de dados. Por exemplo, quando você deseja carregar em massa informações coletadas de múltiplas fontes de dados em um banco de dados, ou processar automaticamente dados de um sistema externo, a importação de CSV se torna extremamente útil.

Casos de Uso Comuns para Importação de CSV

  • Manipulando grandes conjuntos de dados : Em vez de inserir manualmente milhares de registros, você pode processá-los rapidamente usando a importação de CSV.
  • Migração de dados : Conveniente para importar dados exportados de outros sistemas no MySQL.
  • Atualizações regulares de dados : Em sistemas que exigem atualizações frequentes, a automação com arquivos CSV é altamente eficaz.

2. Pré-requisitos

Antes de importar um arquivo CSV no MySQL, certas configurações e preparações são necessárias para garantir um processo suave.

2.1 Ambiente Necessário

  • Instalação do servidor MySQL Você precisa ter o MySQL instalado corretamente. Verifique se o MySQL está em execução no seu ambiente — seja Windows, macOS ou Linux.
  • Verificar permissões necessárias Para importar arquivos CSV, o usuário do MySQL deve ter as privilégios apropriados, especialmente o privilégio LOAD DATA INFILE. Sem ele, as importações podem ser negadas.

2.2 Formato do Arquivo CSV

  • Delimitador Arquivos CSV geralmente são delimitados por vírgulas, mas às vezes tabs ou ponto e vírgula são usados. Sempre confirme o delimitador antes de importar.
  • Verificação de codificação Se o arquivo CSV usar uma codificação de caracteres diferente (por exemplo, UTF-8, Shift-JIS), pode ocorrer corrupção de caracteres durante a importação. Verifique a codificação do arquivo previamente e converta para a correta, se necessário.

3. Importando CSV com o Comando LOAD DATA INFILE

A maneira mais comum de importar arquivos CSV no MySQL é usando o comando LOAD DATA INFILE, que facilita o carregamento em massa de grandes quantidades de dados em uma tabela.

3.1 Sintaxe Básica

Aqui está a sintaxe básica para importar um arquivo CSV no MySQL:

LOAD DATA INFILE '/path/to/file.csv' INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n';
  • FIELDS TERMINATED BY : Define o delimitador usado entre os campos. Uma vírgula é o mais comum.
  • LINES TERMINATED BY : Define o delimitador de linha, geralmente \n (nova linha).

3.2 Exemplo de Execução

No exemplo a seguir, um arquivo chamado user_data.csv é importado na tabela users:

LOAD DATA INFILE '/path/to/user_data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n'
IGNORE 1 LINES;
  • IGNORE 1 LINES : Ignora a primeira linha (linha de cabeçalho). Útil quando o CSV contém nomes de colunas na primeira linha.

3.3 Notas sobre Caminho do Arquivo e Permissões

O arquivo deve estar localizado onde o servidor MySQL possa acessá-lo. Se o servidor não puder ler o arquivo, use LOAD DATA LOCAL INFILE para importar os dados do lado do cliente.

4. Solução de Problemas Comuns

A seguir, estão soluções para problemas típicos encontrados ao importar arquivos CSV no MySQL.

4.1 Problemas de Caminho do Arquivo

Se o caminho do arquivo estiver incorreto, você pode ver o erro The MySQL server is not permitted to read from the file. Nesses casos, verifique o caminho correto no servidor ou use a opção LOAD DATA LOCAL INFILE para carregar arquivos do lado do cliente.

LOAD DATA LOCAL INFILE '/path/to/file.csv' INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n';

4.2 Problemas de Codificação de Caracteres

Se o arquivo for salvo com uma codificação diferente, texto corrompido pode aparecer durante a importação. Para evitar isso, confirme a codificação do arquivo e defina o conjunto de caracteres apropriado no MySQL:

SET NAMES 'utf8mb4';

5. Exemplo Prático: Importando um Arquivo CSV

Vamos percorrer o processo passo a passo de importar um arquivo CSV no MySQL.

5.1 Preparando o Arquivo CSV

Crie um arquivo CSV (data.csv) com o seguinte conteúdo:

id,name,age
1,Taro Yamada,28
2,Hanako Sato,34
3,Ichiro Tanaka,45

5.2 Executando o Comando

Para importar o arquivo na tabela users, execute este comando:

LOAD DATA INFILE '/path/to/data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n'
IGNORE 1 LINES;

Este comando importa todas as linhas a partir da segunda linha na tabela users.

6. Avançado: Tratamento de Erros e Dados Duplicados

Aqui está como lidar com erros e dados duplicados ao importar arquivos CSV no MySQL.

6.1 Tratamento de Dados Duplicados

Se registros com a mesma chave já existirem, use a opção REPLACE para sobrescrever as linhas existentes com novos dados:

LOAD DATA INFILE '/path/to/data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n'
IGNORE 1 LINES
REPLACE;

6.2 Tratamento de Erros

Se você quiser continuar o processo mesmo quando erros ocorrerem, use a opção IGNORE. Isso pulará as linhas problemáticas enquanto ainda importa o resto dos dados:

LOAD DATA INFILE '/path/to/data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n'
IGNORE 1 LINES
IGNORE;

7. Conclusão

Importar arquivos CSV no MySQL é uma ferramenta poderosa para gerenciar grandes conjuntos de dados e migrar dados entre sistemas de forma eficiente. Ao dominar os conceitos básicos e aprender a lidar com erros e duplicatas, você pode garantir importações de dados confiáveis e estáveis.

Em artigos futuros, também cobriremos como exportar dados de bancos de dados MySQL para aprimorar ainda mais suas habilidades de gerenciamento de dados.