Importar arquivos CSV com o MySQL

Importar arquivos CSV com o MySQL

Uma das opções para a importação de uma grande quantidade de dados é utilizar arquivos CSV. Os arquivos CSV são arquivos texto onde as colunas são separadas por vírgulas ou outro separador, como ponto e vírgula.  Planilhas eletrônicas, como o Excel, podem exportar os dados neste formato.

Para quem trabalha com PHP, é comum usar o PHPMyAdmin para a importação de dados. Porem, existe um limite no tamanho dos arquivos que podem ser importados, o limite por padrão é de 2Mb, o que exige quebrar um arquivo extenso em muitas partes. Para arquivos muito grandes, é mais prático acessar o banco de dados pelo terminal e fazer a importação por lá.

Neste exemplo, vamos acessar o banco de dados MySQL pelo terminal, criar uma tabela e importar os dados de um arquivo CSV.

A estrutura do arquivo CSV é a seguinte

 

ID;MES1;MES2;MES3

106186;0;0;0

123609;0;0;0

 

Neste exemplo, eu tenho quatro colunas  (ID, MES1, MES2 e MES3). Cada coluna é separada por um ponto e vírgula. O nome deste arquivo será "meu_arquivo.csv".

 

A partir do terminal, para acessar o servidor de banco de dados, você pode utilizar o seguinte comando:

mysql -h localhost -u root -p

Vamos entender os parâmetros deste comando

 

-h         -- Serve para avisar que vamos informar o nome do servidor

localhost  -- Nome do servidor ou endereço IP

-u         -- Serve para avisar que vamos informar o nome do usuário do banco de dados

root       -- Nome do usuário. Por padrão, toda instalação tem um usuário "root"

-p         -- Vai pedir a senha do usuário

 

Depois de inserir este comando, ele vai pedir a senha do usuário. Se estiver correta, vai ocorrer a conexão com o MySQL, seu terminal vai mudar e ficar com o "mysql>" no começo.

Para confirmar que houve a conexão, você pode digitar o comando:

show databases;

Para verificar se ele vai retornar os banco de dados do servidor.

Agora que houve a conexão, o próximo passo é conectar com o seu banco de dados. Para isso, utilize o comando:

use NOME_DO_BANCO_DE_DADOS

Para confirmar, depois de entrar no banco, digite o seguinte comando:

show tables;

Ele deve listar as tabelas do seu banco de dados.

Agora vamos criar a tabela que vai receber os dados que vamos importar do arquivo CSV. Você deve utilizar o comando CREATE TABLE. A estrutura de nossa tabela será a seguinte:

CREATE TABLE `minha_tabela` (

  `ID` int(11) NOT NULL,

  `MES1` int(11) NOT NULL,

  `MES2` int(11) NOT NULL,

  `MES3` int(11) NOT NULL

) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

Finalmente vamos importar o arquivo CSV. Para fazer isso, digita o seguinte comando

load data local infile caminho_do_arquivo/meu_arquivo.csv into table minha_tabela

fields terminated by ;

lines terminated by

(ID,MES1, MES2, MES3);

Para conferir, basta listar o conteudo desta tabela

SELECT * from minha_tabela;

Para sair do terminal do MySQL, basta digitar 

exit

Caso o seu servidor de MySQL seja remoto, você deve abrir uma conexão de terminal remota usando SSH. Uma das formas de fazer isso é utilizando um programa chamado Putty. No link abaixo existem instruções de como instalar e abrir uma conexão.

Conectar ao servidor por SSH

Para o envio do seu arquivo CSV, você pode enviar o arquivo por FTP. Em hospedagens linux, a pasta onde fica o seu site se chamada "public_html". Se você copiar o seu arquivo para lá, o caminho do arquivo para importar pelo terminal do MySQL seria public_html/meu_arquivo.csv .

 

Outros conteudos que podem ser de seu interesse

Validar CPF com SQL Server
27/01/2020SQL

Validar CPF com SQL Server

Aprenda a criar uma função para validar o CPF

Saiba mais...
SQL vs DAX - Trabalhando com strings
19/12/2021SQL

SQL vs DAX - Trabalhando com strings

Um comparativo de como trabalhar com strings no SQL e no DAX

Saiba mais...

Conteúdo sobre banco de dados sem complicação!