SQL-INSERT in CSV umwandeln
Die Tabelle aus den INSERT-Befehlen eines SQL-Dumps zurückholen; MySQL-, PostgreSQL- und SQL-Server-Schreibweisen, Ausgabe als CSV oder JSON
Ihre Daten bleiben bei Ihnen. Die Umwandlung läuft im Browser; nichts wird an einen Server gesendet.
Hat dieses Werkzeug geholfen?
Danke, Ihre Rückmeldung ist angekommen.
So funktioniert es
Meist haben Sie nur noch ein Datenbank-Backup als .sql-Datei: die Mitgliederliste einer alten Website, die Bestellungen aus einem stillgelegten Shop oder Beispieldaten von einem Entwickler. Um die Tabelle ohne eigene Datenbank zu sehen, öffnen Sie die Datei im Editor und fügen die INSERT-Zeilen oder die ganze Datei links ein. "INSERT INTO kunde (id, name) VALUES (1, 'Anna'), (2, 'Jonas');" wird eine Tabelle mit zwei Zeilen und den Spalten id und name. mysqldump und pg_dump schreiben keine Spaltennamen in die INSERT-Befehle; das Werkzeug holt sie aus dem CREATE TABLE desselben Dumps und nennt sie sonst spalte1, spalte2. Texte verlieren ihre Anführungszeichen: 'O''Brien' und die MySQL-Schreibweise 'O\'Neil' werden O'Brien und O'Neil, NULL wird eine leere Zelle. Funktionen wie NOW() werden nicht ausgeführt, sondern als Text übernommen und in der Ergebniszeile gezählt. Die PLZ '01067' steht als Text im Dump und kommt mit Null in die CSV. Bei mehreren Tabellen wird jede eine eigene CSV in einer ZIP-Datei namens tabellen.zip; mit JSON werden die Tabellennamen zu Schlüsseln. Eine SELECT-Abfrage kann hier nicht laufen, denn es gibt keine Datenbank; gelesen wird nur, was als Wert im Text steht.
Dieses Werkzeug ist auch als sql in csv umwandeln, sql to csv, sql dump in excel oeffnen, insert befehle in csv, sql to json bekannt.
Was ist SQL-INSERT?
INSERT ist der SQL-Befehl, der Zeilen in eine Tabelle schreibt: INSERT INTO tabelle (spalte1, spalte2) VALUES (wert1, wert2). Ein einzelner Befehl kann viele Zeilen enthalten, durch Kommas getrennt. Datenbank-Backups aus mysqldump, pg_dump --inserts oder dem Skript-Assistenten von SQL Server schreiben den Inhalt jeder Tabelle als solche Befehle; die INSERT-Zeilen sind also die Tabelle selbst in Textform.
Was ist SQL-Dump?
Ein SQL-Dump ist eine Textdatei mit allen Befehlen, die eine Datenbank wieder aufbauen: erst CREATE TABLE für die Struktur, dann INSERT oder COPY für die Zeilen. Der Export-Knopf im Hosting-Panel oder in phpMyAdmin liefert so eine Datei. Sie kann groß sein, bleibt aber Text; für eine einzelne Tabelle reicht es, deren Abschnitt samt CREATE TABLE hier einzufügen.
Was ist der Unterschied zwischen einem SQL-Dump und CSV?
Ein SQL-Dump besteht aus Befehlen für eine Datenbank: Er trägt Struktur (Spaltentypen, Schlüssel), Inhalt und mehrere Tabellen zusammen, braucht zum Öffnen aber eine Datenbank oder einen Leser wie diesen. Eine CSV trägt nur die Werte einer einzigen Tabelle, ohne Typen, Schlüssel oder Tabellennamen, dafür öffnet sie jedes Programm bis hin zu Excel direkt. Zum Wiederherstellen eines Backups brauchen Sie SQL, zum Ansehen, Teilen oder Übertragen der Daten CSV.
Welche SQL-Schreibweisen erkannt werden
Datenbanken setzen Namen unterschiedlich in Anführungszeichen. MySQL nutzt `Backticks`, PostgreSQL "doppelte Anführungszeichen", SQL Server [eckige Klammern]; alle drei werden erkannt und die Namen ohne Zeichen übernommen. Textwerte stehen überall in einfachen Anführungszeichen, ein Apostroph darin wird verdoppelt ('O''Brien'). MySQL kennt zusätzlich den Backslash: \' ist ein Apostroph, \n ein Zeilenumbruch. In PostgreSQL ist der Backslash ein normales Zeichen, ein Pfad wie C:\daten muss so bleiben. Das Werkzeug erkennt einen MySQL-Dump an Spuren wie Backticks, ENGINE= oder LOCK TABLES, wertet den Backslash nur dort als Escape und meldet das in der Ergebniszeile.
Der Standardexport von pg_dump enthält keine INSERT-Befehle, sondern COPY-Blöcke: nach "COPY public.artikel (id, name) FROM stdin;" folgen tabulatorgetrennte Zeilen und am Ende \. Auch diese Blöcke werden gelesen; \N wird ein leerer Wert. Das N'text'-Präfix von SQL Server, die PostgreSQL-Umwandlung '2026-09-27'::date und das MySQL-Präfix _utf8mb4'text' fallen weg, der Wert bleibt.
- `name`, "name", [name] → name
- 'O''Brien', 'O\'Neil' (MySQL) → O'Brien, O'Neil
- NULL → leere Zelle (im JSON null)
- 1250.50 → unverändert 1250.50
- NOW(), CAST(…) → nicht ausgeführt, als Text übernommen
CSV oder JSON, und welches Trennzeichen?
Wollen Sie die Tabelle in Excel prüfen oder in ein anderes System laden, nehmen Sie CSV. Deutsches Excel erwartet Semikolons, deshalb ist das Semikolon voreingestellt. SQL schreibt Dezimalzahlen mit Punkt (1250.50), und das Werkzeug ändert daran nichts; deutsches Excel liest solche Zellen womöglich als Text oder als Datum. Wollen Sie rechnen, ersetzen Sie in Excel mit Suchen und Ersetzen (Strg+H) den Punkt durch ein Komma, oder importieren Sie die Datei über Daten → Aus Text/CSV mit dem Gebietsschema Englisch. Die heruntergeladene CSV beginnt mit einer UTF-8-BOM, damit Umlaute wie in München richtig erscheinen.
Geben Sie die Daten an ein Programm oder eine Website weiter, nehmen Sie JSON: Zahlen stehen ohne Anführungszeichen, NULL wird null, TRUE/FALSE wird true/false, und die Schreibweise der Zahl bleibt (1250.50 bleibt 1250.50). Der COPY-Block von pg_dump enthält keine Typen; das Werkzeug liest den Spaltentyp aus CREATE TABLE, macht integer- und numeric-Spalten zu Zahlen und die t/f-Werte einer boolean-Spalte zu true/false.
Häufige Fragen
Wie wandle ich eine SQL-Datei in CSV um?
Öffnen Sie die .sql-Datei im Editor oder einem anderen Texteditor, kopieren Sie den Inhalt und fügen Sie ihn links auf dieser Seite ein. Die Werte aus den INSERT-Befehlen erscheinen rechts als CSV; mit „Herunterladen“ erhalten Sie die .csv-Datei. Enthält der Dump mehrere Tabellen, kommt jede als eigene CSV in eine ZIP-Datei.
Kann ich das Ergebnis einer SELECT-Abfrage als CSV bekommen?
Nein. Diese Seite verbindet sich mit keiner Datenbank und führt keine Abfragen aus; sie liest nur Werte, die im Text stehen. Das Ergebnis einer SELECT-Abfrage exportieren Sie in Ihrem Datenbankwerkzeug, etwa phpMyAdmin oder pgAdmin. Haben Sie ein Backup mit INSERT-Befehlen, holt dieses Werkzeug die Tabelle ohne Datenbank heraus.
Warum heißen die Spalten spalte1, spalte2?
Fehlt im INSERT die Spaltenliste (INSERT INTO kunde VALUES (…)), stehen die Namen nur in der Tabellendefinition. Findet das Werkzeug im selben Text ein CREATE TABLE kunde, übernimmt es die Namen von dort, sonst nummeriert es. Fügen Sie den Anfang des Dumps mit der Tabellendefinition mit ein, dann erscheinen die echten Namen.
Wird mein Datenbank-Backup an einen Server gesendet?
Nein. Der SQL-Text wird in Ihrem Browser gelesen und die Tabelle dort erzeugt. Auch ein Dump mit Kundendaten, E-Mail-Adressen oder Passwort-Hashes verlässt diese Seite nicht und wird nirgends gespeichert.