Conversor CSV-SQL
Converta CSV para SQL INSERT, CREATE TABLE ou de volta para CSV no navegador. Auto-detecta tipos, delimitadores variados, compatível MySQL Postgres SQLite.
Sobre o Conversor CSV-SQL
Conversor CSV-SQL é uma ferramenta online gratuita que converte entre arquivos CSV e instruções SQL. Gere instruções SQL INSERT e CREATE TABLE a partir de dados CSV, ou exporte resultados de consultas SQL de volta para formato CSV—tudo processado localmente no seu navegador para privacidade completa.
Por que converter CSV para SQL?
Converter CSV para SQL é essencial para importar dados em bancos de dados:
- Preencher rapidamente tabelas de banco de dados a partir de exportações de planilhas
- Migrar dados entre diferentes sistemas
- Criar dados de teste para desenvolvimento
- Importar dados em massa sem entrada manual
- Gerar scripts SQL para controle de versão
Esta ferramenta gera instruções INSERT adequadamente formatadas com detecção automática de tipo de dados, tornando importações de banco de dados rápidas e sem erros.
Quais formatos de saída SQL estão disponíveis?
A ferramenta oferece três opções de saída SQL:
1. Apenas Instruções INSERT: Apenas os comandos INSERT para tabelas existentes
2. Apenas CREATE TABLE: Definição de esquema de tabela com tipos de colunas
3. CREATE + INSERT: Script SQL completo com criação de tabela e inserção de dados
Você também pode incluir uma instrução DROP TABLE para substituir tabelas existentes com segurança.
Como os tipos de dados são detectados?
O conversor infere automaticamente tipos de dados SQL analisando seus dados CSV:
- Valores numéricos → REAL (para decimais) ou INTEGER
- Texto curto (< 255 caracteres) → VARCHAR(255)
- Texto longo → TEXT
- Tipos mistos → TEXT (opção mais segura)
Esta detecção automática funciona com MySQL, PostgreSQL, SQLite e a maioria dos bancos de dados SQL. Você pode ajustar manualmente os tipos de dados no SQL gerado se necessário.
Posso converter SQL de volta para CSV?
Sim! O modo SQL para CSV permite:
- Executar instruções SQL CREATE e INSERT
- Executar consultas SELECT para filtrar dados
- Exportar resultados de consultas para formato CSV
- Escolher delimitador (vírgula, ponto e vírgula, tab)
- Incluir/excluir cabeçalhos de colunas
Isso é útil para exportar dumps de banco de dados, compartilhar resultados de consultas ou converter backups SQL para formato de planilha.
Meus dados saem do meu dispositivo?
Não. Toda conversão CSV-SQL acontece inteiramente no seu navegador usando JavaScript e SQL.js (um engine SQL baseado em navegador). Seus dados nunca saem da sua máquina, garantindo privacidade completa para informações sensíveis como dados de clientes, registros financeiros ou dados de negócios confidenciais.
E se meus nomes de coluna tiverem caracteres especiais?
A ferramenta sanitiza automaticamente nomes de colunas para garantir compatibilidade SQL:
- Remove caracteres especiais (substituídos por sublinhado)
- Lida com espaços (convertidos para sublinhados)
- Previne conflitos com palavras reservadas SQL
- Garante identificadores SQL válidos
Exemplo: "Employee Name (2024)" se torna "Employee_Name_2024"
Isso garante que seu SQL gerado funcione em todos os sistemas de banco de dados sem erros.

O SQL gerado funciona em MySQL, Postgres e SQLite sem mudanças?
Majoritariamente sim para INSERTs. Tipos de schema diferem: MySQL usa VARCHAR(255), Postgres prefere TEXT, SQLite é type-less (usa INTEGER, REAL, TEXT, BLOB). O gerador emite tipos ANSI compatíveis que os três aceitam. Features específicas do Postgres (SERIAL, JSONB, arrays) exigem edição manual pós-geração.
Como a detecção decide INTEGER vs REAL vs TEXT?
Escaneia até 1000 linhas de cada coluna. Se todo valor numérico for um número inteiro (Number.isInteger, sem ponto decimal) retorna INTEGER (ou INT no MySQL). Se algum valor numérico tiver decimais retorna o tipo de ponto flutuante do dialeto: REAL (SQLite), DOUBLE PRECISION (Postgres), DOUBLE (MySQL) ou FLOAT (SQL Server). Colunas não numéricas viram VARCHAR(255) para textos curtos (<255 caracteres) ou TEXT para longos. Células vazias são ignoradas e tipos mistos caem para TEXT por segurança.
Por que minha coluna 'order' ou 'select' não quebra mais o SQL?
Cada nome de tabela e de coluna agora é envolvido pelo estilo de aspas do dialeto escolhido, então palavras reservadas como order, select ou group são sempre seguras. A ferramenta usa `crases` para MySQL, [colchetes] para SQL Server e "aspas duplas" para PostgreSQL e SQLite (ANSI). Caracteres de aspas dentro de um nome são duplicados (escapados) automaticamente. Por isso espaços e caracteres especiais não precisam mais ser removidos para manter o identificador válido.
Como NULLs, células vazias, aspas, vírgulas e quebras de linha são tratados?
Ao converter CSV para SQL, uma célula vazia vira NULL (não uma string vazia), números ficam sem aspas e textos são colocados entre aspas simples com apóstrofos internos escapados por duplicação ('' -> ''). Ao converter resultados SQL de volta para CSV, NULL vira um campo vazio e qualquer valor que contenha o delimitador, uma aspa dupla ou uma quebra de linha é envolvido em aspas duplas com as aspas internas duplicadas - escape CSV padrão RFC 4180 - de modo que vírgulas e quebras de linha embutidas fazem round-trip sem perdas.
Qual dialeto alvo escolher e o que o INSERT multilinha faz?
Escolha o banco para o qual vai importar - MySQL, PostgreSQL, SQLite ou SQL Server. O dialeto controla o uso de aspas em identificadores (crases, colchetes ou aspas duplas) e os tipos de coluna (INT vs INTEGER, DOUBLE vs DOUBLE PRECISION vs FLOAT vs REAL, VARCHAR vs NVARCHAR), de modo que o script roda como está sem edição manual. Ative INSERT multilinha para emitir instruções em lote - INSERT INTO t (...) VALUES (...),(...),(...); em blocos de 500 linhas cada - que carregam muito mais rápido que um INSERT por linha em grandes volumes. Deixe desativado para uma saída de uma linha por instrução, mais fácil de comparar.
Posso rodar queries SELECT nos dados carregados?
Sim. O modo SQL para CSV embute SQL.js (build WebAssembly de 1MB do SQLite). Pode colar scripts CREATE+INSERT+SELECT e os resultados SELECT exportam para CSV. Útil para filtrar, juntar, agregar antes de exportar subconjuntos. Nenhum dado sai do navegador; todo o motor SQLite roda no client.
