Conversor de CSV para SQL
Converta dados CSV com uma linha de cabeçalho em uma declaração CREATE TABLE e declarações INSERT — infere o tipo de cada coluna (INTEGER/REAL/TEXT), escolhe citação de identificador MySQL/PostgreSQL/SQLite e escapa valores de string.
Entrada
Sanitizado para um identificador SQL válido: letras, dígitos, sublinhado — não pode começar com um dígito.
Desligado gera uma declaração INSERT por linha.
Saída
Mais formas de usar esta ferramenta
API REST
curl -X POST https://api.iotools.cloud/v1/tool/csv-to-sql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"csvInput": "id,name,price\n1,Widget,9.99\n2,\"O'Brien's Gadget\"…",
"tableName": "products",
"dialect": "mysql",
"batchInserts": "true"
}'Troque pela sua própria chave, da sua conta. Os campos da ferramenta viram o corpo da requisição — sem envelope.
Peça a um agente de IA
Use the IOTools `csv-to-sql` tool (CSV to SQL Converter) on this input:
YOUR_INPUT_HERECole isto em qualquer agente conectado ao servidor MCP do IOTools e depois adicione sua entrada.
Widget para incorporar
<iframe
src="https://iotools.cloud/embed/csv-to-sql/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="Conversor de CSV para SQL — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>Coloque isso na sua própria página — grátis, sem chave, só um link de volta.
| Custo por chamada de API/MCP | A partir de 5 créditos |
|---|---|
| Precisa de mais créditos? | Ver preços |
Também disponível via
Guias
Copie e cole dados CSV — uma exportação de planilha, um despejo de banco de dados, uma lista rápida que você digitou à mão — e obtenha SQL pronto para executar: uma declaração CREATE TABLE correspondente às suas colunas, seguida por declarações INSERT carregando cada linha de dados. É a maneira mais rápida de preencher uma nova tabela de banco de dados com algumas linhas sem escrever o esquema manualmente.
Como funciona
Cole CSV com uma linha de cabeçalho na primeira linha. O conversor trata essa linha como nomes de coluna e cada linha depois dela como dados. A análise segue RFC 4180: campos envolvidos em aspas duplas podem conter vírgulas ou quebras de linha, e um "" duplicado dentro de um campo citado se torna um " literal.
Inferência de tipo analisa cada valor em uma coluna (ignorando espaços em branco) e o classifica:
- INTEGER — cada valor não vazio é um número inteiro (
42,-7). - REAL / DECIMAL / NUMERIC — cada valor não vazio tem um ponto decimal (
9.99,-3.5). O nome exato do tipo depende do dialeto. - TEXT / VARCHAR — qualquer outra coisa, incluindo uma coluna que mistura números inteiros e decimais.
Uma coluna completamente vazia usa TEXT por padrão. Células em branco se tornam NULL nas declarações INSERT geradas, independentemente do tipo de coluna.
Dialeto controla a citação de identificadores e nomes de tipos de coluna:
| Dialeto | Citação de identificadores | INTEGER | REAL/decimal | TEXT |
|---|---|---|---|---|
| MySQL | `backticks` |
INT |
DECIMAL(10,2) |
VARCHAR(255) |
| PostgreSQL | "aspas duplas" |
INTEGER |
NUMERIC(10,2) |
TEXT |
| SQLite | "aspas duplas" |
INTEGER |
REAL |
TEXT |
Valores de texto são envolvidos em aspas simples, com qualquer aspas simples interna duplicada (it's se torna 'it''s') — a convenção de escape padrão SQL-92 que todo banco de dados principal entende.
Como usá-lo
- Cole seu CSV (com uma linha de cabeçalho) na caixa de entrada.
- Defina um nome de tabela — qualquer coisa que você digite é automaticamente convertida em um identificador válido (caracteres não alfanuméricos se tornam sublinhados e um nome começando com um dígito recebe um sublinhado inicial).
- Escolha seu dialeto de destino: MySQL, PostgreSQL ou SQLite.
- Alterne INSERT em lote para escolher entre uma declaração
INSERTcom várias linhasVALUES(compacta, menos viagens de ida e volta) ou uma declaraçãoINSERTseparada por linha (mais fácil de revisar ou re-executar parcialmente). - Copie ou baixe o SQL gerado.
FAQ
Vai detectar o tipo errado para minha coluna? Se uma coluna mistura formatos — alguns números inteiros, alguns decimais ou um rótulo de texto ocasional como "N/A" — ela volta para TEXT para que nenhum valor numérico seja silenciosamente arredondado ou rejeitado. Limpe colunas mistas em sua planilha primeiro se quiser um tipo de coluna numérica.
O que acontece com células vazias? Elas se tornam NULL nas declarações INSERT, independentemente do tipo de coluna inferido.
Suporta SQL Server ou Oracle? Não atualmente — esta ferramenta é direcionada para MySQL, PostgreSQL e SQLite, que cobrem a grande maioria dos casos de auto-hospedagem e incorporados.
Meus dados são enviados para algum lugar? Não. A análise e a geração de SQL ocorrem inteiramente no seu navegador — seus dados CSV nunca saem do seu dispositivo.