Kurz gesagt
Um eine CSV in SQL umzuwandeln, fügen Sie Ihre Tabelle in den Konverter ein, wählen das Trennzeichen und den Ziel-Dialekt (MySQL, PostgreSQL, SQLite oder SQL Server) und erhalten sofort ein CREATE TABLE plus passende INSERT-Statements. Das Ganze läuft kostenlos, ohne Anmeldung und ohne Upload, also komplett lokal in Ihrem Browser. Ihre Datei verlässt das Gerät nie.
Was heißt CSV in SQL umwandeln?
Eine CSV-Datei ist eine schlichte Textdatei, die Tabellendaten Zeile für Zeile speichert. Jede Zeile ist ein Datensatz, die einzelnen Spalten sind durch ein Trennzeichen getrennt, meist ein Komma oder, im deutschen Raum, ein Semikolon. SQL dagegen ist die Sprache relationaler Datenbanken. Mit ihr legt man eine Tabelle an (CREATE TABLE) und fügt Datensätze ein (INSERT). Wer eine CSV zu SQL machen will, braucht also zwei Dinge: eine Tabellendefinition mit passenden Spalten und Datentypen sowie eine Reihe von INSERT-Anweisungen, die jede CSV-Zeile in die Datenbank schreiben.
Genau diese Übersetzung nimmt Ihnen der Konverter ab. Aus einer flachen Textdatei entsteht fertiges, ausführbares SQL. Das ist deutlich schneller und fehlerärmer, als die Statements von Hand zu tippen, vor allem bei Hunderten von Zeilen. Wer die beiden Formate grundsätzlich gegenüberstellen möchte, findet im Ratgeber CSV oder SQL: Unterschiede und wann du welches brauchst die ausführliche Einordnung.
Wichtig zu wissen: Das Tool erzeugt SQL als Text, es führt es nicht aus und verbindet sich mit keiner Datenbank. Sie bekommen also eine .sql-Datei oder einen kopierbaren Block, den Sie anschließend selbst in Ihrer Datenbank ausführen. Das ist gewollt, denn so bleibt der Vorgang vollständig client-side und ohne jede Server-Komponente.
CSV in SQL umwandeln in 4 Schritten
Der schnellste Weg führt über unseren CSV-zu-SQL-Konverter. Sie müssen nichts installieren und kein Konto anlegen. So gehen Sie vor:
- CSV einfügen oder Datei wählen: Kopieren Sie Ihre Tabelle in das Eingabefeld oder wählen Sie eine .csv-Datei von Ihrem Gerät. Die Datei wird lokal mit dem Browser gelesen, ein Upload findet nicht statt.
- Trennzeichen und Dialekt einstellen: In den meisten Fällen erkennt das Tool das Trennzeichen automatisch. Bei Bedarf stellen Sie es manuell auf Komma, Semikolon, Tab oder Pipe. Wählen Sie dann den Ziel-Dialekt: MySQL, PostgreSQL, SQLite oder SQL Server.
- SQL erzeugen lassen: Der Konverter parst die CSV, nutzt die erste Zeile als Spaltennamen, erkennt je Spalte den Datentyp und erzeugt ein
CREATE TABLEplus die passenden INSERT-Statements. In der Vorschau sehen Sie das Ergebnis sofort. - Kopieren oder herunterladen: Übernehmen Sie das SQL per Kopieren-Button in die Zwischenablage oder laden Sie es als .sql-Datei herunter. Anschließend führen Sie es in Ihrer Datenbank aus.
Wer nur die reinen Datensätze und kein Tabellenschema braucht, liest am besten den Spezial-Ratgeber INSERT-Statements aus CSV erzeugen. Geht es Ihnen umgekehrt vor allem um das Schema mit den richtigen Spalten und Typen, hilft CREATE TABLE aus CSV generieren weiter.
Beispiel: aus CSV wird CREATE TABLE und INSERT
Ein konkretes Beispiel macht den Vorgang greifbar. Angenommen, Sie haben eine kleine Kundenliste als CSV:
id,name,stadt,aktiv,umsatz
1,Anna Berg,Hamburg,true,1240.50
2,Tom O'Neil,Köln,false,
3,Lea Voß,Bremen,true,980.00 Die erste Zeile liefert die Spaltennamen, die weiteren Zeilen sind die Datensätze. Für den PostgreSQL-Dialekt erzeugt der Konverter daraus etwa:
CREATE TABLE "daten" (
"id" INTEGER NOT NULL,
"name" VARCHAR(9) NOT NULL,
"stadt" VARCHAR(7) NOT NULL,
"aktiv" BOOLEAN NOT NULL,
"umsatz" DOUBLE PRECISION
);
INSERT INTO "daten" ("id", "name", "stadt", "aktiv", "umsatz") VALUES (1, 'Anna Berg', 'Hamburg', TRUE, 1240.50);
INSERT INTO "daten" ("id", "name", "stadt", "aktiv", "umsatz") VALUES (2, 'Tom O''Neil', 'Köln', FALSE, NULL);
INSERT INTO "daten" ("id", "name", "stadt", "aktiv", "umsatz") VALUES (3, 'Lea Voß', 'Bremen', TRUE, 980.00);
Drei Dinge fallen auf, die das Tool im Hintergrund richtig erledigt. Erstens hat es die Datentypen geraten: id wird INTEGER, aktiv wird BOOLEAN, umsatz wird eine Kommazahl, der Rest Text. Zweitens wurde der Apostroph in Tom O'Neil sicher verdoppelt (O''Neil), sonst wäre das Statement kaputt und sogar anfällig für SQL-Injection. Drittens wurde das leere Umsatzfeld in Zeile 2 zu einem echten NULL und nicht zu einem leeren String. Genau diese kleinen, aber entscheidenden Details sind der Grund, warum ein Konverter dem Tippen von Hand überlegen ist.
Welcher SQL-Dialekt für wen?
SQL ist nicht gleich SQL. Jede Datenbank kocht ihr eigenes Süppchen, vor allem bei der Schreibweise von Spaltennamen, bei den Datentyp-Bezeichnungen und beim automatischen Hochzählen einer ID-Spalte. Der Konverter passt das alles automatisch an den gewählten Dialekt an. Die folgende Tabelle fasst die wichtigsten Unterschiede zusammen:
| Dialekt | Quoting | Auto-Increment-Schlüssel |
|---|---|---|
| MySQL / MariaDB | Backticks `name` | INT AUTO_INCREMENT |
| PostgreSQL | Anführungszeichen "name" | SERIAL PRIMARY KEY |
| SQLite | Anführungszeichen "name" | INTEGER PRIMARY KEY AUTOINCREMENT |
| SQL Server | Eckige Klammern [name] | INT IDENTITY(1,1) |
Welcher Dialekt der richtige ist, hängt schlicht an Ihrer Zieldatenbank. Für ein typisches Webprojekt mit WordPress oder einer eigenen App ist MySQL oder MariaDB die naheliegende Wahl. PostgreSQL ist bei datenlastigen Anwendungen und in der Analytik beliebt. SQLite ist die kleine, dateibasierte Datenbank für lokale Tools, Apps und Tests. SQL Server begegnet Ihnen vor allem in Microsoft-Umgebungen. Wenn Sie unsicher sind, hilft der Überblick im Ratgeber MySQL, PostgreSQL, SQLite oder SQL Server: welcher Dialekt für dich.
Datentypen, leere Felder und Sonderzeichen
Der spannendste Teil der Umwandlung ist die Datentyp-Erkennung. Eine CSV kennt selbst keine Typen, jeder Wert ist erst einmal nur Text. Der Konverter schaut sich deshalb alle nicht-leeren Werte einer Spalte an und wählt den engsten passenden Typ in dieser Reihenfolge: Wahrheitswert (BOOLEAN), Ganzzahl (INTEGER), Kommazahl (REAL beziehungsweise DECIMAL), Datum und zuletzt Text (VARCHAR oder TEXT). Sobald nur ein einziger Wert nicht zum strengeren Typ passt, fällt die Spalte auf den nächst-allgemeineren Typ zurück. Eine Spalte mit den Werten 1, 2, 3 wird also INTEGER, eine mit 1, 2, drei wird TEXT.
Bei leeren Zellen geht der Konverter konsequent vor: Eine leere Zelle wird zu NULL, also dem ausdrücklichen Hinweis fehlt ein Wert, und nicht zu einem leeren Text. Enthält eine Spalte mindestens eine leere Zelle, lässt das Tool sie NULL-bar, andernfalls kann es ein NOT NULL setzen. Sonderzeichen und Umlaute sind kein Problem, sie bleiben als UTF-8 erhalten. Apostrophe innerhalb von Texten werden durch Verdopplung sicher entschärft. Warum dieses Escaping so wichtig ist, vertieft der Ratgeber Sonderzeichen, Apostrophe und SQL-Injection.
Ehrlich bleiben gehört dazu: Die Typ-Erkennung ist eine Heuristik und kann danebenliegen. Der klassische Stolperstein sind reine Ziffernfelder mit führender Null, etwa Postleitzahlen (04109) oder Artikelnummern. Werden sie als INTEGER erkannt, fällt die führende Null weg und aus 04109 wird 4109. Prüfen Sie deshalb die angezeigten Typen kurz und zwingen Sie solche Spalten im Zweifel auf Text. Mehr dazu im Ratgeber Datentypen aus CSV richtig erkennen.
Das Semikolon-Problem bei deutschem Excel
Eine typisch deutsche Fehlerquelle: Klickt man in Excel auf Speichern unter CSV, trennt das Programm die Spalten oft mit einem Semikolon statt mit einem Komma. Der Grund ist das deutsche Dezimalkomma, ein Betrag wie 1.240,50 würde mit Komma als Trennzeichen mitten im Zahlenwert zerschnitten. Internationale Konverter erwarten dagegen das Komma und produzieren dann eine einzige, völlig verklumpte Spalte.
Unser Tool umgeht das, indem es das Trennzeichen automatisch erkennt. Sollte das Ergebnis trotzdem seltsam aussehen, also alles in einer Spalte landen, stellen Sie das Trennzeichen einfach manuell auf Semikolon. Wer regelmäßig mit deutschen Excel-Exporten arbeitet, findet die vollständige Erklärung und weitere Tricks im Ratgeber CSV mit Semikolon in SQL.
Warum ohne Upload sicherer ist
Viele Online-Konverter laden Ihre Datei auf einen fremden Server, wandeln sie dort um und schicken das Ergebnis zurück. Bei Tabellendaten ist das oft heikel, denn CSV-Exporte enthalten regelmäßig personenbezogene Daten: Kundennamen, Adressen, Bestellungen, manchmal sogar Gesundheits- oder Finanzdaten. Sobald solche Daten auf einen unbekannten Server wandern, geben Sie die Kontrolle aus der Hand und wissen nicht, wie lange und wo sie gespeichert werden.
Der Konverter von csv-sql.de geht den anderen Weg. Das Parsen der CSV und das Erzeugen der SQL-Statements laufen zu 100 Prozent lokal in Ihrem Browser. Es gibt keinen Upload, keinen Server, kein Konto und keine Speicherung. Das Tool ist kostenlos und ohne Limit nutzbar, Sie können also beliebig viele Dateien hintereinander umwandeln. Gerade bei personenbezogenen Daten ist das ein handfester Vorteil im Sinne der DSGVO, weil die Daten Ihr Gerät schlicht nie verlassen. Wie sich das rechtlich einordnet, beleuchtet der Ratgeber CSV sicher in SQL umwandeln: Datenschutz und DSGVO.
Ehrliche Grenzen des Tools
Ein gutes Werkzeug sagt offen, was es nicht kann. Drei Dinge sollten Sie wissen, bevor Sie das erzeugte SQL ausführen.
- Die Typ-Erkennung ist ein Vorschlag, keine Garantie. Postleitzahlen, Telefonnummern mit führender Null oder reine ID-Codes können fälschlich als Zahl erkannt werden. Prüfen Sie die angezeigten Typen und korrigieren Sie sie bei Bedarf.
- Es entsteht eine flache Einzeltabelle. Der Konverter erkennt keine Beziehungen zwischen mehreren CSVs, setzt keine Fremdschlüssel, keine UNIQUE- oder CHECK-Regeln und keine Indizes. Er kennt nur NULL beziehungsweise NOT NULL und optional einen Auto-Increment-Schlüssel.
- Sehr große Dateien fordern Ihr Gerät. Weil alles im Browser läuft, sind Dateien mit Hunderttausenden Zeilen speicherintensiv und können den Tab kurz blockieren. Dafür fließen Ihre Daten aber garantiert nicht ab. Die Option Batch-INSERT bündelt viele Zeilen in eine Anweisung und beschleunigt den späteren Import.
Für die allermeisten Alltagsfälle, also Kundenlisten, Produktkataloge, Exporte aus Excel oder Auswertungen, ist das Ergebnis sofort brauchbar. Wenn Sie die generierten Statements anschließend einspielen wollen, helfen die importspezifischen Ratgeber, etwa CSV in MySQL importieren, CSV in PostgreSQL importieren oder CSV in SQLite importieren. Wer den Vorgang lieber selbst programmiert, findet im Ratgeber CSV in SQL mit Python umwandeln ein Code-Beispiel und die ehrliche Antwort, wann ein Skript sinnvoller ist als ein Tool.
Wenn Sie jetzt loslegen wollen, geht es hier direkt zum CSV-zu-SQL-Konverter. Für die Grundlagen rund um die beiden Formate lohnen sich außerdem Was ist eine CSV-Datei? und Was ist SQL?.
Häufige Fragen
Wie wandle ich eine CSV-Datei kostenlos in SQL um?
Fügen Sie die CSV in den Konverter ein oder wählen Sie die Datei, stellen Sie Trennzeichen und Ziel-Dialekt ein und Sie erhalten sofort CREATE TABLE plus INSERT-Statements. Die Umwandlung läuft komplett im Browser, kostenlos, ohne Anmeldung und ohne Limit.
Wird meine Datei beim Umwandeln auf einen Server hochgeladen?
Nein. Bei csv-sql.de wird die Datei nicht hochgeladen. Das Parsen und das Erzeugen der SQL-Statements passieren zu 100 Prozent lokal im Browser mit JavaScript. Ihre Daten verlassen das Gerät nicht.
Welche Datenbanken werden unterstützt?
MySQL und MariaDB, PostgreSQL, SQLite und SQL Server. Das Tool passt Quoting, Datentypen und die Auto-Increment-Syntax automatisch an den gewählten Dialekt an.
Mein CSV nutzt Semikolon statt Komma, funktioniert das trotzdem?
Ja. Deutsches Excel speichert CSV oft mit Semikolon. Der Konverter erkennt das Trennzeichen automatisch, Sie können es bei Bedarf aber auch manuell auf Semikolon stellen.
Werden Sonderzeichen, Umlaute und Apostrophe korrekt escaped?
Ja. Texte werden in einfache Anführungszeichen gesetzt, ein Apostroph im Wert wird verdoppelt. Das ist der portable ANSI-Weg und schützt vor kaputten Strings und SQL-Injection in allen vier Dialekten. Umlaute bleiben als UTF-8 erhalten.
Was passiert mit leeren Feldern?
Leere Zellen werden als NULL geschrieben, nicht als leerer String. Enthält eine Spalte mindestens eine leere Zelle, wird sie NULL-bar, sonst kann sie als NOT NULL ausgegeben werden.