Vai al contenuto
100% locale

JSON a SQL CREATE TABLE

Converti un oggetto JSON o un array di oggetti JSON in un'istruzione SQL CREATE TABLE.

Ingresso
Uscita

JSON a SQL CREATE TABLE

Incolla un oggetto JSON o un array di oggetti JSON e questo strumento genera un'istruzione SQL CREATE TABLE pronta per l'esecuzione — puntalo a una risposta API di esempio o a un record esportato e ottieni uno schema iniziale invece di digitare ogni colonna a mano.

I tipi di colonna vengono dedotti dai valori effettivi: i numeri interi diventano INTEGER, i numeri con parte decimale diventano DECIMAL, vero/falso diventano BOOLEAN, le stringhe formattate come 2024-01-15 o 2024-01-15T10:30:00Z diventano DATE o TIMESTAMP, e tutto il resto diventa VARCHAR con una lunghezza stimata, o TEXT oltre 255 caratteri. Un campo contrassegnato come NOT NULL è uno che è presente e mai nullo in ogni record incollato; un campo denominato id diventa PRIMARY KEY. Scegli un dialetto — ANSI SQL, MySQL, PostgreSQL, SQLite o SQL Server — per abbinare le piccole differenze nei nomi dei tipi. Gli oggetti annidati possono essere appiattiti in colonne con prefisso (address.city diventa address_city) o mantenuti come una singola colonna JSON, e "Converti nomi in snake_case" trasforma le chiavi JSON in camelCase in nomi di colonna SQL convenzionali.

Con più di un record, l'attivazione di "Aggiungi istruzioni INSERT" aggiunge un'istruzione INSERT per record sotto CREATE TABLE, utilizzando le stesse colonne dedotte —utile per popolare un database di prova da un fixture JSON. L'inferenza esamina sempre ogni record fornito, non solo il primo, quindi un campo presente solo a volte rimane correttamente nullable invece di essere indovinato male.

Tutto viene eseguito nel tuo browser. Il JSON che incolli e lo schema generato da esso non vengono mai caricati da nessuna parte —questo è importante quando i dati di esempio provengono da un export di produzione. Copia il risultato, scaricalo come file .txt o rimanda l'output all'input per continuare a perfezionare lo schema.

FAQ

Come vengono decisi i tipi di colonna?
Ogni colonna viene dedotta da ogni valore osservato per quel campo in tutti i record che hai incollato — non solo il primo. Un campo con tipi misti (un numero in un record, una stringa in un altro) ricorre a una colonna di testo, poiché è l'unico tipo che può contenere entrambi in modo sicuro.
Cosa succede a un campo denominato "id"?
Una colonna denominata id (dopo la conversione snake_case, se abilitata) diventa PRIMARY KEY. La sintassi di autoincremento o identità differisce abbastanza tra i dialetti da essere omessa — aggiungila tu stesso una volta scelto una strategia.
Qual è la differenza tra le due opzioni di oggetti annidati?
"Appiattisci con trattino basso" trasforma un oggetto annidato come address: { city } in una colonna address_city separata. "Mantieni come colonna JSON" memorizza l'intero oggetto annidato come una singola colonna JSON (o testo) invece. Gli array vengono sempre mantenuti come una singola colonna JSON/testo, poiché una singola riga non può contenere un elenco di lunghezza variabile.
Può generare dati da inserire oltre alla tabella?
Sì. Attiva "Aggiungi istruzioni INSERT" e, se hai incollato un array di oggetti, un'istruzione INSERT per record viene aggiunta sotto CREATE TABLE, utilizzando le colonne e i tipi già dedotti.
Il mio JSON viene caricato da qualche parte?
No. L'analisi, l'inferenza dei tipi e la generazione di SQL vengono eseguiti localmente nel tuo browser — il tuo JSON e lo schema derivato da esso non lasciano mai il tuo dispositivo.