Zum Inhalt springen
100% lokal

JSON zu SQL CREATE TABLE

Wandeln Sie ein JSON-Objekt oder ein Array von Objekten in eine SQL CREATE TABLE-Anweisung um.

Eingabe
Ausgabe

JSON zu SQL CREATE TABLE

Fügen Sie ein JSON-Objekt oder ein Array von JSON-Objekten ein, und dieses Tool erstellt eine einsatzbereite SQL CREATE TABLE-Anweisung daraus — verwenden Sie es auf eine Beispiel-API-Antwort oder einen exportierten Datensatz und erhalten Sie ein Startschema, anstatt jede Spalte manuell einzutippen.

Spaltentypen werden aus den tatsächlichen Werten abgeleitet: ganze Zahlen werden zu INTEGER, Zahlen mit Dezimalstellen zu DECIMAL, true/false zu BOOLEAN, Zeichenketten in der Form 2024-01-15 oder 2024-01-15T10:30:00Z zu DATE oder TIMESTAMP, und alles andere zu VARCHAR mit geschätzter Länge oder zu TEXT bei über 255 Zeichen. Ein Feld mit NOT NULL-Markierung ist in jedem eingefügten Datensatz vorhanden und niemals null; ein Feld namens id wird der PRIMARY KEY. Wählen Sie einen Dialekt — ANSI SQL, MySQL, PostgreSQL, SQLite oder SQL Server — um die kleineren Unterschiede in Typnamen zu berücksichtigen. Verschachtelte Objekte können mit Präfixen in Spalten abgeflacht werden (address.city wird address_city) oder als einzelne JSON-Spalte beibehalten werden, und "Namen in snake_case konvertieren" wandelt camelCase-JSON-Schlüssel in konventionelle SQL-Spaltennamen um.

Bei mehr als einem Datensatz fügt das Einschalten von "INSERT-Anweisungen hinzufügen" unterhalb der CREATE TABLE eine INSERT-Anweisung pro Datensatz hinzu und verwendet dabei dieselben abgeleiteten Spalten — praktisch zum Seeding einer Test-Datenbank aus einem JSON-Fixture. Die Inferenz betrachtet alle eingefügten Datensätze, nicht nur den ersten, daher wird ein Feld, das nur manchmal vorhanden ist, korrekt als nullable belassen, anstatt falsch erraten zu werden.

Alles läuft in Ihrem Browser. Das JSON, das Sie einfügen, und das daraus generierte Schema werden nie irgendwo hochgeladen — das ist wichtig, wenn die Beispieldaten aus einem Produktionsexport stammen. Kopieren Sie das Ergebnis, laden Sie es als .txt-Datei herunter, oder senden Sie die Ausgabe zurück in die Eingabe, um das Schema weiter zu verfeinern.

Häufige Fragen

Wie werden Spaltentypen bestimmt?
Jede Spalte wird aus allen Werten abgeleitet, die Sie für dieses Feld in alle eingefügten Datensätzen gesehen haben — nicht nur aus dem ersten. Ein Feld mit gemischten Typen (eine Zahl in einem Datensatz, eine Zeichenkette in einem anderen) fällt auf eine Textspalte zurück, da dies der einzige Typ ist, der beide Werte sicher halten kann.
Was passiert mit einem Feld namens "id"?
Eine Spalte namens id (nach Konvertierung in snake_case, falls aktiviert) wird zum PRIMARY KEY. Die Auto-Increment- oder Identity-Syntax unterscheidet sich zwischen Dialekten genug, dass sie ausgelassen wird — fügen Sie sie selbst hinzu, sobald Sie eine Strategie gewählt haben.
Was ist der Unterschied zwischen den zwei Optionen für verschachtelte Objekte?
"Mit Unterstrich abflachen" wandelt ein verschachteltes Objekt wie address: { city } in eine separate Spalte address_city um. "Als JSON-Spalte behalten" speichert stattdessen das gesamte verschachtelte Objekt als eine JSON- (oder Text-) Spalte. Arrays werden immer als eine einzelne JSON/Text-Spalte gespeichert, da eine einzelne Zeile keine Liste mit variabler Länge halten kann.
Kann es auch Daten zum Einfügen sowie die Tabelle generieren?
Ja. Schalten Sie "INSERT-Anweisungen hinzufügen" ein und, falls Sie ein Array von Objekten eingefügt haben, wird unter der CREATE TABLE eine INSERT-Anweisung pro Datensatz hinzugefügt, mit denselben abgeleiteten Spalten.
Wird mein JSON irgendwo hochgeladen?
Nein. Parsing, Typinferenz und SQL-Generierung werden alle lokal in Ihrem Browser ausgeführt — Ihr JSON und das daraus abgeleitete Schema verlassen Ihr Gerät nie.