Conversor de CSV para SQL

Cole seu CSV ou solte um arquivo e você recebe de volta um script .sql para rodar em um banco de dados. Ele vem em duas partes: um comando CREATE TABLE que cria uma tabela chamada csv_export e um INSERT para cada linha do seu arquivo.

O arquivo é lido e processado no seu navegador, ou seja, nunca sai da sua máquina. Só as linhas já processadas são enviadas para montar o script. Os nomes das colunas vêm da linha de cabeçalho, em minúsculas, com espaços e símbolos virando sublinhados. Cada coluna é criada como TEXT e cada valor fica entre aspas, então números e datas saem como texto.

Vale saber: o script usa sintaxe MySQL, então roda do jeito que está no MySQL e no MariaDB. Para Postgres, SQL Server ou SQLite, você vai precisar ajustar algumas coisas antes. O limite do arquivo é de 5 MB.
Como usar
  1. Carregar: Upload CSV, colar ou carregar de URL
  2. Visualizar: Revisar e editar dados
  3. Converter: Clique em "Converter para SQL"
  4. Baixar: Baixar arquivo convertido
Recursos
  • Até 1 milhão de linhas
  • Progresso em tempo real
  • Processamento eficiente
  • Sem armazenamento
  • Conversão SQL
Sobre SQL

Instruções SQL INSERT.

Ideal para: Importação BD

Tenha um script SQL executável a partir de um CSV

Carregar um CSV no banco na mão é cansativo. Você encara alguns milhares de linhas e começa a digitar INSERT um por um, ou briga com um assistente de importação e as manias dele com aspas e delimitadores. Este conversor pula essa parte. Você aponta ele para um CSV e recebe de volta um arquivo .sql simples: um CREATE TABLE no topo e, embaixo, um INSERT para cada linha.

Ele foi feito para os trabalhos rápidos e sem glamour. Popular um banco de desenvolvimento local, jogar a exportação de uma planilha dentro de uma tabela, colocar dados de exemplo num esquema para começar a escrever consultas. A saída é texto, então você abre, lê e altera antes de executar uma única linha.

O que o script realmente contém

A saída tem um formato fixo, e saber disso de antemão evita confusão. No topo ficam duas linhas de comentário, indicando que é uma exportação de CSV e o horário em que foi gerado. Depois vem o CREATE TABLE: a tabela sempre se chama csv_export, ganha uma coluna id autoincremento como chave primária, e cada cabeçalho do seu CSV vira uma coluna. Abaixo, uma linha INSERT INTO csv_export (...) VALUES (...); para cada linha de dados, na ordem em que apareciam.

Os nomes das colunas saem da linha de cabeçalho, em minúsculas, com tudo que não for letra, número ou sublinhado trocado por um sublinhado. Um cabeçalho como First Name vira first_name, e Order # vira order__. Se dois dos seus cabeçalhos se reduzirem ao mesmo nome, você acaba com colunas duplicadas no CREATE TABLE, então vale dar uma olhada na linha de cabeçalho antes de converter.

Como seus dados são tratados

Seu arquivo é lido e processado no navegador. O delimitador ele descobre sozinho pela linha de cabeçalho, então arquivos com vírgula, ponto e vírgula, tabulação e barra vertical carregam sem você configurar nada. Campos entre aspas e aspas duplicadas dentro deles são lidos do jeito padrão do CSV.

No lado do SQL, cada valor fica entre aspas simples, e qualquer aspa simples dentro de um valor é duplicada, então um nome como O'Brien vira 'O''Brien' e não quebra o comando. É essa mesma regra que faz números e datas saírem entre aspas como texto, '30' e '2026-07-20', já que toda coluna é TEXT. Células vazias viram uma string vazia, não NULL. Fique de olho em uma coisa: as aspas simples são escapadas, mas as barras invertidas não, então se seus dados tiverem barras invertidas e você estiver na configuração padrão do MySQL, confira esses valores antes de rodar. O UTF-8 é mantido intacto e a tabela é declarada como utf8mb4, então acentos, cedilhas e alfabetos não latinos chegam inteiros.

Até onde ele vai

Este é um gerador propositalmente simples, e algumas das escolhas dele são fixas. Ser sincero sobre isso desde já evita surpresa lá na frente.

  • A tabela sempre se chama csv_export. Precisa de outro nome? Renomeie no script, ou rode um ALTER TABLE depois de importar.
  • Não há detecção de tipos. Toda coluna sai como TEXT, até as que são claramente inteiros ou datas. Se você quer colunas tipadas, edite o CREATE TABLE antes de executá-lo.
  • A sintaxe é feita para MySQL e MariaDB: nomes entre crases, int(11), ENGINE=InnoDB, utf8mb4. Esses dois rodam do jeito que está. Postgres, SQL Server, SQLite e Oracle precisam de ajustes antes.
  • As linhas são escritas como comandos INSERT separados, não como inserts de múltiplas linhas agrupados, e tudo fica em um só arquivo. Para alguns milhares de linhas, tudo bem; para uma exportação bem grande, o script fica longo.

Minha opinião sincera: trate o resultado como um bom rascunho, não como uma migração pronta. Para uma tabela de desenvolvimento descartável, está pronto para rodar. Para qualquer coisa que vá para produção, abra e defina primeiro tipos de coluna de verdade e um nome de tabela de verdade. Esses cinco minutos valem mais do que recarregar depois uma tabela cheia de colunas TEXT.

Um exemplo real

Digamos que você tirou 4.000 registros de clientes de um CRM antigo como customers.csv, com colunas como Full Name, Email, Signup Date e Plan. Você solta o arquivo, escolhe SQL e recebe de volta um arquivo chamado customers-thefreeconverter.com.sql. Dentro tem um CREATE TABLE csv_export com full_name, email, signup_date e plan como colunas TEXT mais a chave id, seguido de 4.000 linhas INSERT. Renomeie a tabela para customers, troque signup_date para DATE e rode no seu MySQL local. Demora mais para explicar do que para fazer.

Rodando o script

Com o arquivo .sql em mãos, entregue ele ao seu banco do jeito que você costuma fazer, seja jogando no cliente mysql ou colando numa ferramenta gráfica. A coluna id se preenche sozinha conforme as linhas são inseridas, então deixe ela quieta. Um detalhe: o CREATE TABLE não tem IF NOT EXISTS, então rodar o mesmo script duas vezes gera um erro de 'table already exists'. Apague a tabela antes, ou remova o bloco CREATE TABLE se na segunda vez você só quiser os INSERT.

Limpando os dados antes de converter

Como o CSV abre numa grade editável, você pode arrumar tudo antes de existir qualquer SQL. Ordene por uma coluna, filtre até sobrar só as linhas que você quer, renomeie um cabeçalho para a coluna sair mais limpa, ou remova linhas duplicadas. Ajustar aqui faz os INSERT baterem com o que você quer na tabela, em vez de importar bagunça e apagar depois.

Quando outra ferramenta encaixa melhor

Sobre privacidade: o CSV em si nunca é enviado, já que é processado no seu navegador. Montar o SQL, aí sim, manda as linhas processadas para o servidor, onde o arquivo .sql é gerado e guardado só o tempo suficiente para você baixar. Esses arquivos gerados são apagados automaticamente em cerca de dez minutos, e nada é guardado ou compartilhado depois.

Perguntas sobre CSV para SQL, respondidas

Ferramentas similares para explorar

HTML

Conversor CSV para HTML

Converta seus arquivos CSV em tabelas HTML estilizadas e responsivas, prontas para usar em qualquer site

Converter para HTML
</>

Conversor CSV para XML

Envie seu arquivo CSV e baixe XML limpo em segundos. Sem cadastro, sem complicacao.

Converter para XML
JSON

Conversor CSV para JSON

Converta seus dados CSV em JSON limpo e pronto pra usar em APIs, apps web ou qualquer projeto de desenvolvimento

Converter para JSON
TSV

Conversor CSV para TSV

Converta seus arquivos CSV para TSV em poucos segundos. Envie o arquivo, baixe o resultado com tabulacoes e pronto.

Converter para TSV
PDF

Conversor CSV para PDF

Converta seus arquivos CSV em PDF bem formatado, com tabelas organizadas e pronto para imprimir

Converter para PDF
XLSX

Conversor CSV para Excel

Converta seus arquivos CSV em planilhas Excel organizadas, prontas para fórmulas e gráficos

Converter para Excel