UTILS.
100% nel browser
🗄

Da JSON a SQL CREATE TABLE

Inferisci un SQL CREATE TABLE (e INSERT opzionali) da un array JSON di oggetti, scegliendo automaticamente i tipi di colonna per MySQL, PostgreSQL o SQLite.

— l'output appare qui —

Informazioni su questo strumento

Lo strumento Da JSON a SQL CREATE TABLE legge un array JSON di oggetti (o un singolo oggetto) e inferisce una definizione di tabella SQL corrispondente, scegliendo il tipo di ogni colonna dai valori che effettivamente vede. Funziona interamente nel tuo browser — il JSON viene analizzato con il JSON.parse nativo e non lascia mai il tuo dispositivo — così puoi incollare un dump API o un'esportazione di database e creare una tabella in un solo passaggio.

I tipi di colonna vengono inferiti per campo su tutte le righe: i valori che sono tutti numeri interi diventano INT (BIGINT quando un valore supera 2.147.483.647), i numeri con decimali diventano DECIMAL(p,s) dimensionati sul massimo numero di cifre intere e decimali che hai fornito (o DOUBLE / REAL quando scegli la modalità float), i booleani si mappano su TINYINT(1)/BOOLEAN, le stringhe ISO 8601 su DATETIME o DATE, gli oggetti e array annidati diventano JSON/JSONB, e le stringhe restanti diventano VARCHAR(N) dove N è la successiva potenza di due sopra il valore più lungo (TEXT una volta superati i 255). Una colonna null o mancante in qualsiasi riga viene lasciata NULLABLE; altrimenti è NOT NULL. Una colonna unica e non null chiamata id o uuid viene promossa a PRIMARY KEY, con AUTO_INCREMENT / SERIAL / AUTOINCREMENT aggiunti per le chiavi intere.

Un interruttore del dialetto riscrive i tipi per MySQL, PostgreSQL (SERIAL, JSONB, TIMESTAMP, DOUBLE PRECISION) o SQLite (affinità INTEGER / REAL / TEXT) e virgoletta gli identificatori con il delimitatore corretto (backtick per MySQL, doppie virgolette altrove). Attiva l'opzione INSERT per emettere anche un'istruzione INSERT per riga, con stringhe, booleani, numeri e valori JSON escapati e virgolettati per il dialetto scelto.

Domande frequenti

Quale input si aspetta?
Un array JSON di oggetti piatti, come righe da un'API o un'esportazione, o un singolo oggetto JSON che viene trattato come una tabella a una riga. Tutte le chiavi di tutte le righe vengono unite per formare le colonne; gli elementi non-oggetto vengono rifiutati.
Come vengono scelti i tipi di colonna?
Per colonna, da ogni valore visto: tutti interi in INT/BIGINT, decimali in DECIMAL(p,s) o DOUBLE, booleani in TINYINT(1)/BOOLEAN, data-ora ISO in DATETIME/DATE, oggetti/array in JSON, e altre stringhe in VARCHAR(N) (TEXT sopra i 255 caratteri).
Quali dialetti SQL sono supportati?
MySQL, PostgreSQL e SQLite. L'interruttore del dialetto riscrive i nomi dei tipi (SERIAL, JSONB, TIMESTAMP per Postgres; affinità INTEGER/REAL/TEXT per SQLite) e usa la corretta virgolettatura degli identificatori e la sintassi di auto-incremento.
Come viene decisa la chiave primaria?
Se una colonna chiamata id o uuid è presente e non null in ogni riga con valori unici, viene contrassegnata come PRIMARY KEY. Una chiave intera riceve anche AUTO_INCREMENT (MySQL), SERIAL (PostgreSQL) o AUTOINCREMENT (SQLite).

Altri strumenti