CSV zu SQL INSERT Generator
CSV-Daten in SQL INSERT-Anweisungen konvertieren. Optional CREATE TABLE DDL mit automatisch erkannten Spaltentypen generieren.
Über dieses Tool
Der CSV-zu-SQL-INSERT-Generator ist ein browserbasiertes Tool, das Tabellenkalkulationsdaten in ausführbare SQL-INSERT-Anweisungen konvertiert. Dieses Dienstprogramm ist unverzichtbar für Entwickler und Datenbankadministratoren, die Daten aus CSV-Dateien in SQL-Datenbanken migrieren, Testdatenbanken schnell füllen oder Daten in einem Format freigeben müssen, das direkt für jedes SQL-Datenbanksystem ausgeführt werden kann.
Zur Verwendung dieses Tools fügen Sie Ihre CSV-Daten ein oder laden sie hoch, und das Tool erkennt automatisch die Spaltenkopfzeilen und Datentypen. Sie können dann einfache INSERT-Anweisungen für vorhandene Tabellen generieren oder eine CREATE-TABLE-Anweisung mit abgeleiteten Spaltendefinitionen einbeziehen. Das Tool unterstützt Anpassungsoptionen wie die Angabe des Tabellennamens, die Verarbeitung von NULL-Werten und die Auswahl zwischen verschiedenen SQL-Dialekten oder Anführungszeichen-Stilen.
Dieses Tool behandelt Grenzfälle wie Felder mit Anführungszeichen mit Kommas, Zeilenumbrüche in Zellen und Sonderzeichen elegant. Es ist besonders nützlich für einmalige Datenimporte, das Befüllen von Entwicklungsdatenbanken oder die Vorbereitung von Datensätzen für Sicherungs- und Wiederherstellungsworkflows, ohne Kommandozeilen-Tools oder Datenbankx-Client-Software zu benötigen.
Häufig gestellte Fragen
Code-Implementierung
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.