JSON in SQL umwandeln

JSON in SQL umwandeln: Aus einem JSON-Array entstehen SQL-INSERT-Anweisungen und auf Wunsch ein CREATE TABLE, passend für MySQL, PostgreSQL oder SQLite.

SQL

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

SQL-INSERT aus JSON für MySQL, PostgreSQL und SQLite

Das Werkzeug wandelt JSON in SQL um: Aus einem Array von Objekten werden SQL-INSERT-Anweisungen, jedes Objekt wird zu einer Zeile, jeder Schlüssel zu einer Spalte. Fehlt ein Schlüssel in einem Objekt, wird an dieser Stelle NULL eingetragen. Auf Wunsch kommt ein passendes CREATE TABLE dazu, dessen Spaltentypen aus den Werten abgeleitet werden: ganze Zahlen, Kommazahlen, Wahrheitswerte, Datumsangaben im Format JJJJ-MM-TT, Text und verschachtelte Daten als JSON.

Die Dialekte unterscheiden sich in Details, die das Werkzeug berücksichtigt. MySQL setzt Spaltennamen in Backticks und braucht verdoppelte Backslashes in Texten, PostgreSQL und SQLite verwenden doppelte Anführungszeichen. Wahrheitswerte schreibt es in MySQL und PostgreSQL als TRUE und FALSE, in SQLite als 1 und 0. Verschachtelte Objekte landen in MySQL in einer Spalte vom Typ JSON, in PostgreSQL in JSONB und in SQLite als Text; alternativ werden sie zu eigenen Spalten wie adresse_ort aufgelöst. Mehrere Zeilen pro INSERT beschleunigen den Import großer Mengen deutlich.

Prüfen Sie die vorgeschlagenen Typen vor dem Einsatz: Das Werkzeug sieht nur die eingefügten Beispieldaten und kennt weder Primärschlüssel noch Indizes oder Längengrenzen Ihrer Anwendung. Einfache Anführungszeichen in Texten werden verdoppelt, sodass die Anweisungen sicher ausführbar sind. Für Tabellen aus CSV-Dateien gibt es CSV in JSON als Zwischenschritt, und lange Anweisungen machen Sie mit SQL formatieren lesbar.

Anleitung: JSON in SQL in 4 Schritten

  1. Fügen Sie ein JSON-Array von Objekten ein oder laden Sie das Beispiel, um JSON in SQL umzuwandeln.
  2. Geben Sie den Tabellennamen an und wählen Sie den SQL-Dialekt: MySQL / MariaDB, PostgreSQL oder SQLite.
  3. Legen Sie die Zeilen pro INSERT fest und entscheiden Sie, ob verschachtelte Objekte als JSON-Text oder flach als eigene Spalten erscheinen.
  4. Aktivieren Sie bei Bedarf CREATE TABLE, DROP TABLE IF EXISTS und die Transaktion, dann kopieren Sie das SQL oder laden es als .sql herunter.

Typische Anwendungsfälle

  • API-Antworten importieren: JSON aus einer Schnittstelle als SQL-INSERT in eine lokale Datenbank laden.
  • Testdatenbank füllen: Beispieldaten für MySQL, PostgreSQL oder SQLite samt passender Tabelle erzeugen.
  • Datenbank wechseln: JSON-Exporte aus einer NoSQL-Datenbank in eine relationale Tabelle übertragen.
Fragen

Häufige Fragen

Welches JSON-Format wird erwartet?

Ein Array von Objekten wie [{"id": 1, "name": "Anna"}, …]. Ein einzelnes Objekt wird als eine Zeile behandelt. Steckt das Array unter einem einzigen Schlüssel, etwa {"kunden": [ … ]}, wird es automatisch verwendet.

Wie werden Spaltentypen bestimmt?

Aus den Werten aller Zeilen: nur ganze Zahlen ergeben INT oder INTEGER, Kommazahlen DOUBLE oder REAL, true und false BOOLEAN, Datumswerte DATE, verschachtelte Daten JSON beziehungsweise JSONB. Gemischte Spalten werden zu Text.

Sind die INSERT-Anweisungen vor SQL-Injection geschützt?

Texte werden korrekt als SQL-Literale geschrieben: Einfache Anführungszeichen werden verdoppelt, in MySQL auch Backslashes. Für Anwendungen, die Nutzereingaben verarbeiten, bleiben vorbereitete Anweisungen mit Parametern trotzdem der richtige Weg.

Wie viele Zeilen gehören in ein INSERT?

Mehrere Hundert bis einige Tausend Zeilen pro Anweisung sind beim Import üblich und viel schneller als einzelne INSERTs. Grenzen setzt etwa max_allowed_packet in MySQL. Mit 1 erhalten Sie eine Anweisung pro Zeile.

Werden meine Daten übertragen?

Nein. Die SQL-Anweisungen entstehen im Browser, die Daten verlassen Ihr Gerät nicht.

Wie lade ich die erzeugte .sql-Datei in MySQL, PostgreSQL oder SQLite?

MySQL: mysql -u benutzer -p datenbank < daten.sql. PostgreSQL: psql -d datenbank -f daten.sql. SQLite: sqlite3 datenbank.db < daten.sql.

Kann ich verschachteltes JSON in eigene SQL-Spalten aufteilen?

Ja. Wählen Sie für verschachtelte Objekte die Option „flach als eigene Spalten“; aus adresse.ort wird dann die Spalte adresse_ort. Sonst landet das Objekt als JSON in einer Spalte, in PostgreSQL als JSONB.

Weitere Werkzeuge

Das könnte auch helfen

Alle 358 Werkzeuge