Gerador CSV para SQL INSERT
Converta dados CSV em instruções SQL INSERT. Opcionalmente gere CREATE TABLE DDL com tipos de coluna detectados automaticamente.
Sobre esta ferramenta
O Gerador de INSERT SQL a partir de CSV é uma ferramenta baseada em navegador que converte dados de planilhas em instruções SQL INSERT executáveis. Este utilitário é essencial para desenvolvedores e administradores de banco de dados que precisam migrar dados de arquivos CSV para bancos de dados SQL, preencher rapidamente bancos de dados de teste ou compartilhar dados em um formato que possa ser executado diretamente em qualquer sistema de banco de dados SQL.
Para usar esta ferramenta, cole ou carregue seus dados CSV e os cabeçalhos de coluna e tipos de dados serão detectados automaticamente. Você pode então gerar instruções INSERT simples para tabelas existentes ou incluir uma instrução CREATE TABLE com definições de coluna inferidas. A ferramenta suporta opções de personalização, como especificar o nome da tabela, lidar com valores NULL e escolher entre diferentes dialetos SQL ou estilos de aspas.
Esta ferramenta lida elegantemente com casos extremos como campos entre aspas com vírgulas, quebras de linha dentro de células e caracteres especiais. É particularmente útil para importações de dados ocasionais, preenchimento de bancos de dados de desenvolvimento ou preparação de conjuntos de dados para fluxos de trabalho de backup e restauração sem exigir ferramentas de linha de comando ou software cliente de banco de dados.
Perguntas Frequentes
Implementação de Código
import csv
import io
def csv_to_sql(csv_text, table_name="my_table", include_create=True):
reader = csv.reader(io.StringIO(csv_text.strip()))
rows = list(reader)
if len(rows) < 2:
return ""
headers = rows[0]
data_rows = rows[1:]
def infer_type(values):
for v in values:
v = v.strip()
if v == "":
continue
try:
int(v)
return "INT"
except ValueError:
try:
float(v)
return "FLOAT"
except ValueError:
return "VARCHAR(255)"
return "VARCHAR(255)"
types = [infer_type([r[i] for r in data_rows if i < len(r)])
for i in range(len(headers))]
sql = []
if include_create:
cols = ", ".join(f"{h} {t}" for h, t in zip(headers, types))
sql.append(f"CREATE TABLE {table_name} ({cols});")
for row in data_rows:
values = []
for i, val in enumerate(row):
if types[i] == "VARCHAR(255)":
values.append(f"'{val.replace(chr(39), chr(39)*2)}'")
else:
values.append(val if val.strip() else "NULL")
cols_str = ", ".join(headers)
vals_str = ", ".join(values)
sql.append(f"INSERT INTO {table_name} ({cols_str}) VALUES ({vals_str});")
return "\n".join(sql)
csv_data = """id,name,score
1,Alice,95.5
2,Bob,87"""
print(csv_to_sql(csv_data))Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.