Generatore da CSV a SQL INSERT
Converti dati CSV in istruzioni SQL INSERT. Genera opzionalmente CREATE TABLE DDL con tipi di colonna rilevati automaticamente.
Informazioni sullo strumento
Il Generatore di INSERT SQL da CSV è uno strumento basato su browser che converte i dati dei fogli di calcolo in istruzioni SQL INSERT eseguibili. Questo utility è essenziale per sviluppatori e amministratori di database che hanno bisogno di migrare dati da file CSV a database SQL, popolare rapidamente database di test o condividere dati in un formato che può essere eseguito direttamente su qualsiasi sistema di database SQL.
Per utilizzare questo strumento, incolla o carica i dati CSV e lo strumento rileva automaticamente le intestazioni delle colonne e i tipi di dati. Puoi quindi generare semplici istruzioni INSERT per le tabelle esistenti o includere un'istruzione CREATE TABLE con definizioni di colonna dedotte. Lo strumento supporta opzioni di personalizzazione come la specifica del nome della tabella, la gestione dei valori NULL e la scelta tra diversi dialetti SQL o stili di virgolette.
Questo strumento gestisce elegantemente i casi limite come i campi tra virgolette con virgole, interruzioni di riga all'interno di celle e caratteri speciali. È particolarmente utile per importazioni di dati occasionali, popolamento di database di sviluppo o preparazione di set di dati per flussi di lavoro di backup e ripristino senza richiedere strumenti da riga di comando o software client di database.
Domande Frequenti
Implementazione del Codice
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.