Início · Ferramentas grátis · CSV para SQL

Converter CSV para SQL

Solte um .csv, dê nome à tabela e escolha o banco. Você recebe um CREATE TABLE com os tipos tirados dos próprios dados — inteiros, decimais, datas, booleanos, texto do tamanho do maior valor — e os INSERTs agrupados, para colar no console ou salvar em arquivo. O separador (vírgula ou ponto e vírgula) e a codificação (UTF-8 ou Windows-1252) são detectados, e 1.234,56 entra como 1234.56. Nada é enviado.

Seu CSV

Solte um .csv, .tsv ou .xlsx aqui, ou clique para escolher

Você faz isso todo mês? Faça uma vez no TableDI 2, salve como trabalho e rode de novo no mês seguinte. Baixar o TableDI 2 grátis

O arquivo não é enviado. Ele é lido pelo JavaScript desta aba e nunca sai do seu computador — nenhum servidor o vê, e fechar a aba descarta os dados.

Por que a importação nativa raramente resolve sozinha

LOAD DATA INFILE, COPY e os assistentes de importação pedem que a tabela já exista, com os tipos certos. Descobrir esses tipos de olho numa exportação de 40 colunas é o que toma tempo — e errar um significa a carga parar no meio ou, pior, passar com tudo em VARCHAR(255). Esta página escreve o CREATE TABLE e mostra o tipo de cada coluna antes de você rodar qualquer coisa.

O CSV brasileiro, formato por formato

Testamos a conversão com uma exportação típica de sistema brasileiro. O que acontece com cada coisa:

  • Ponto e vírgula como separador — tratado. O separador é deduzido das primeiras linhas; o CSV que o Excel em português grava entra sem configuração.
  • Windows-1252 — tratado. Exportações de ERP antigo com São Paulo e Belém são decodificadas com os acentos certos, e o SQL sai em UTF-8.
  • Vírgula decimal — tratada. 1.234,56, 99,90 e -1.234,56 viram 1234.56, 99.9 e -1234.56 numa coluna DECIMAL; um valor entre parênteses, (99,90), vira negativo.
  • Milhar sem centavos — atenção. 1.234 sozinho, sem a parte decimal, é lido como um vírgula dois três quatro, não como mil duzentos e trinta e quatro. Se a sua exportação escreve valores redondos assim, confira a coluna na prévia ou exporte com centavos (1.234,00).
  • R$ na frente — vira texto. Uma coluna com R$ 99,90 não é reconhecida como número e sai como texto. Tire o símbolo na origem ou formate a coluna como número antes de exportar.
  • Datas dd/mm/aaaa — viram texto. Só 2026-03-15 (ISO, com ou sem hora) é tipado como data. 15/03/2026 entra como texto, intacto — nada é invertido, mas também não vira DATE.
  • sim/não — viram texto. Booleanos são reconhecidos só como true/false ou yes/no.
  • CEP e CPF — ficam texto, como devem. 01310100 tem zero à esquerda e 123.456.789-09 tem pontuação; os dois são identificadores e chegam inteiros.

Nomes de coluna com acento

Cabeçalhos são limpos para virar identificadores válidos: espaços viram sublinhado, tudo vai para minúsculas e duas colunas de mesmo nome viram valor e valor_2. Os acentos são mantidos — Código vira código e a tabela «Clientes São Paulo» vira clientes_são_paulo — e todo identificador sai entre aspas do dialeto (crase no MySQL, aspas duplas no PostgreSQL e no SQLite, colchetes no SQL Server), o que torna isso válido nos quatro. Se o seu padrão interno é sem acento, troque no cabeçalho do arquivo antes.

INSERTs agrupados e aspas

Um INSERT por linha é lento, e um INSERT gigante bate no limite de pacote ou de parâmetros do servidor. As linhas vão em grupos de 500 por padrão, com teto no que cada banco aceita (1.000 no SQL Server). Apóstrofos dentro dos valores, como em Pão d'Ouro, são dobrados, e no SQL Server os textos ganham o prefixo N para os acentos sobreviverem.

Quando a mesma carga se repete todo mês

O TableDI 2 é um aplicativo de desktop para o trabalho com arquivos que se repete a cada período: ele guarda suas fontes, suas regras e a entrega como um trabalho, e no mês seguinte você coloca os arquivos novos e roda de novo. Tudo roda na sua própria máquina. Para uma carga pontual num banco, esta página basta.

Perguntas frequentes

Como gerar INSERT a partir de um CSV?

Solte o arquivo nesta página, dê nome à tabela e escolha o banco. O SQL aparece logo abaixo, com o CREATE TABLE e os INSERTs, pronto para copiar ou baixar como .sql.

Meu CSV é separado por ponto e vírgula. Preciso converter antes?

Não. Vírgula, ponto e vírgula, tabulação e barra vertical são detectados nas primeiras linhas. A codificação também: UTF-8 e Windows-1252, entre outras.

A coluna de valores saiu com 1.234 em vez de 1234. Por quê?

Porque 1.234 sem casas decimais é ambíguo, e a página o lê como decimal com ponto. Valores com centavos (1.234,56) são lidos certo. Exporte com centavos ou corrija essa coluna antes de rodar o SQL.

Minhas datas estão em dd/mm/aaaa. Elas viram DATE?

Não — saem como texto, sem alteração. Só datas ISO (2026-03-15) são tipadas como data. Para ter DATE, converta a coluna para o formato ISO antes, ou faça a conversão no banco depois da carga.

Dá para gerar só os INSERTs, sem o CREATE TABLE?

Sim: desmarque Incluir CREATE TABLE. Serve quando a tabela já existe.

O arquivo é enviado para algum lugar?

Não. O CSV é lido e convertido pelo JavaScript desta aba; nenhuma requisição leva os seus dados.

Você faz isso todo mês?

No TableDI 2 você faz uma vez e salva como um trabalho. No mês seguinte, coloca os arquivos novos e roda de novo.

macOS, Apple Silicon e Intel; a versão para Windows está a caminho (o que fazer até lá). Grátis não é teste — sem conta, sem cartão.

Revisado em 2026-09-11 pela equipe do TableDI. Algo errado nesta página? Escreva para nós — é uma caixa de entrada só, lida por quem constrói o TableDI.