CSV in SQL umwandeln

CSV in SQL: Der Generator macht aus CSV-Daten INSERT-Befehle und auf Wunsch ein CREATE TABLE mit erkannten Datentypen, passend für MySQL, PostgreSQL, SQLite und SQL Server.

SQL

Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.

SQL INSERT und CREATE TABLE aus CSV

CSV in SQL umwandeln heißt: Aus jeder Zeile der CSV-Datei wird ein Datensatz in einem SQL INSERT. Das Werkzeug liest die Kopfzeile als Spaltennamen, setzt Bezeichner je nach Dialekt in die passenden Anführungszeichen (Backticks bei MySQL, doppelte Anführungszeichen bei PostgreSQL und SQLite, eckige Klammern bei SQL Server) und verdoppelt einfache Anführungszeichen in Texten, damit Namen wie O'Connor keinen Syntaxfehler auslösen. Bei MySQL werden zusätzlich Backslashes maskiert.

Auf Wunsch entsteht vorab ein CREATE TABLE mit erkannten Typen: ganze Zahlen werden INT oder BIGINT, Dezimalzahlen DECIMAL mit passender Genauigkeit, true und false BOOLEAN (bei SQL Server BIT), Datumswerte im Format JJJJ-MM-TT DATE und alles andere VARCHAR oder TEXT. Mehrere Zeilen pro INSERT beschleunigen den Import deutlich; SQL Server erlaubt höchstens 1.000 Zeilen je VALUES-Liste. So wird aus der Datei mit wenigen Klicks ein Skript, mit dem Sie die CSV in MySQL importieren oder die CSV in PostgreSQL und SQLite laden.

Grenzen: Die Typerkennung ist eine Schätzung aus den vorhandenen Werten. Prüfen Sie Spaltenlängen, Primärschlüssel und NOT NULL selbst, bevor Sie die Tabelle produktiv nutzen. Zahlen mit Komma als Dezimalzeichen (12,50) bleiben Text, damit nichts falsch gelesen wird. Für sehr große Dateien sind die Importbefehle der Datenbank selbst schneller, etwa LOAD DATA INFILE bei MySQL oder COPY bei PostgreSQL. Den CSV zu SQL Weg brauchen Sie vor allem für Testdaten, kleine Importe und Migrationen. Zum Ansehen der Datei vorab eignet sich der CSV-Viewer.

Anleitung: CSV in SQL in 4 Schritten

  1. Eine CSV-Datei öffnen oder die CSV-Daten einfügen und das Trennzeichen wählen oder automatisch erkennen lassen.
  2. Tabellenname und SQL-Dialekt festlegen: MySQL / MariaDB, PostgreSQL, SQLite oder SQL Server.
  3. Zeilen pro INSERT einstellen und Optionen wie „CREATE TABLE erzeugen“, „Leere Felder als NULL“ oder „In Transaktion einschließen“ setzen.
  4. Das SQL kopieren oder als .sql herunterladen und in der Datenbank ausführen.

Typische Anwendungsfälle

  • Testdaten laden: Eine Excel-Liste als CSV exportieren und als SQL INSERT in eine Entwicklungsdatenbank übernehmen.
  • Kleine Migration: Daten aus einem alten System per CSV in MySQL importieren, ohne Dateizugriff auf den Server zu brauchen.
  • Tabellenstruktur entwerfen: Mit CREATE TABLE und erkannten Datentypen einen Startpunkt für das Schema bekommen.
Fragen

Häufige Fragen

Wie importiere ich eine CSV in MySQL?

Fügen Sie die CSV ein, wählen Sie MySQL und einen Tabellennamen und führen Sie das erzeugte Skript im MySQL-Client oder in phpMyAdmin aus. Für sehr große Dateien ist LOAD DATA INFILE schneller, das setzt aber Dateizugriff auf dem Server voraus.

Was passiert mit Anführungszeichen in Texten?

Einfache Anführungszeichen werden verdoppelt (O''Connor), so wie es der SQL-Standard verlangt. Bei MySQL werden zusätzlich Backslashes verdoppelt, weil MySQL sie sonst als Escape-Zeichen liest.

Wie werden leere Felder behandelt?

Mit der Option „Leere Felder als NULL“ wird ein leeres Feld zu NULL. Ohne die Option bleibt es ein leerer Text. In Zahlen-, Datums- und Wahrheitsspalten wird ein leeres Feld immer zu NULL, weil ein leerer Text dort ungültig wäre.

Warum mehrere Zeilen pro INSERT?

Ein INSERT mit vielen Wertelisten wird von der Datenbank in einem Schritt verarbeitet und ist dadurch viel schneller als tausend einzelne Befehle. Einzelne INSERTs sind dagegen praktisch, wenn Sie fehlerhafte Zeilen gezielt finden möchten.

Werden meine Daten hochgeladen?

Nein. Die Umwandlung läuft vollständig in Ihrem Browser. Weder die CSV noch das SQL verlassen Ihr Gerät.

Wie importiere ich eine CSV in PostgreSQL?

SQL-Dialekt PostgreSQL wählen, das Skript speichern und in psql mit \i datei.sql ausführen. Für große Dateien ist \copy tabelle FROM 'datei.csv' WITH (FORMAT csv, HEADER) schneller, dafür muss die Tabelle schon existieren.

Wie importiere ich eine CSV in SQLite?

Dialekt SQLite wählen und das Skript mit sqlite3 datenbank.db < datei.sql oder in der SQLite-Shell mit .read datei.sql ausführen. Die Shell kann CSV-Dateien auch direkt mit .import --csv datei.csv tabelle laden.

Weitere Werkzeuge

Das könnte auch helfen

Alle 358 Werkzeuge