Convertire JSON in SQL
Trascina il tuo file JSON e scegli il tuo database per ottenere uno script SQL con istruzioni CREATE TABLE e INSERT. Ogni colonna riceve un tipo e ogni correzione è elencata con la sua riga e colonna.
4 righe convertite, 2 correzioni, nessuna rifiutata
| Riga | ||||||
|---|---|---|---|---|---|---|
| 2 | 000481 | Peña Muñoz | 2024-02-03T10:15:00Z | 1234.5 | true | |
| 3 | 000482 | José Ángel Ruiz | 2024-02-15T16:40:00Z | 99.9 | false | Entrega en la tarde |
| 4 | 000483 | Zoë Ortíz | 2024-02-29T09:05:00Z | 12 | true | |
| 5 | 000484 | Ñuño Castañeda | 2024-03-11T13:30:00Z | 980.75 | sí | Factura con "RFC" |
-- Written by IntoSQL for PostgreSQL.
SET client_encoding = 'UTF8';
BEGIN;
CREATE TABLE pedidos_2024 (
pedido text NOT NULL,
cliente text NOT NULL,
fecha timestamptz NOT NULL,
total numeric(6,2) NOT NULL,
pagado boolean NOT NULL,
notas text
);
INSERT INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES
('000481', 'Peña Muñoz', '2024-02-03 10:15:00+00:00', 1234.5, TRUE, NULL),
('000482', 'José Ángel Ruiz', '2024-02-15 16:40:00+00:00', 99.9, FALSE, 'Entrega en la tarde'),
('000483', 'Zoë Ortíz', '2024-02-29 09:05:00+00:00', 12, TRUE, NULL),
('000484', 'Ñuño Castañeda', '2024-03-11 13:30:00+00:00', 980.75, TRUE, 'Factura con "RFC"');
COMMIT;
Correzioni
- Zeri iniziali mantenuti in "pedido": 000481 resta 000481, salvato come testo.
- "pagado" contiene parole sì e no (sí), salvate come booleano.
Il tuo file viene convertito su questo computer e non viene mai caricato.
Altri esempi:
Un file JSON, sei database
L'esempio qui sopra, pedidos_2024.json, e il tipo che riceve ciascuna colonna in ogni database.
| Nel file | Primo valore | PostgreSQL | MySQL | MariaDB | SQLite | SQL Server | Oracle |
|---|---|---|---|---|---|---|---|
| pedido | 000481 | text | varchar(8) | varchar(8) | TEXT | nvarchar(8) | VARCHAR2(8 CHAR) |
| cliente | Peña Muñoz | text | varchar(16) | varchar(16) | TEXT | nvarchar(16) | VARCHAR2(16 CHAR) |
| fecha | 2024-02-03T10:15:00Z | timestamptz | datetime | datetime | DATETIME | datetimeoffset | TIMESTAMP WITH TIME ZONE |
| total | 1234.5 | numeric(6,2) | decimal(6,2) | decimal(6,2) | NUMERIC(6,2) | decimal(6,2) | NUMBER(6,2) |
| pagado | true | boolean | tinyint(1) | tinyint(1) | BOOLEAN | bit | NUMBER(1) |
| notas | - | text | varchar(32) | varchar(32) | TEXT | nvarchar(32) | VARCHAR2(32 CHAR) |
Carica lo script nel tuo database
Il download è un semplice file .sql. Ogni database lo esegue con i propri strumenti.
PostgreSQL
psql -v ON_ERROR_STOP=1 -d mydb -f pedidos_2024.postgresql.sqlON_ERROR_STOP ferma psql al primo errore. Lo script gira in un'unica transazione, quindi un caricamento fallito lascia il database com'era.
MySQL
mysql --default-character-set=utf8mb4 mydb < pedidos_2024.mysql.sqlLo script imposta già utf8mb4; il flag fa sì che il client lo invii allo stesso modo, così gli accenti arrivano intatti.
MariaDB
mariadb --default-character-set=utf8mb4 mydb < pedidos_2024.mariadb.sqlLo script imposta già utf8mb4; il flag fa sì che il client lo invii allo stesso modo, così gli accenti arrivano intatti.
SQLite
sqlite3 pedidos_2024.db < pedidos_2024.sqlite.sqlIl file del database viene creato se non esiste. Il convertitore scarica anche un database .sqlite pronto, senza alcun comando.
SQL Server
sqlcmd -S localhost -d mydb -f 65001 -i pedidos_2024.sql_server.sql-f 65001 legge il file come UTF-8, così accenti e ñ arrivano come sono scritti.
Oracle
sqlplus user@//localhost/mydb @pedidos_2024.oracle.sqlLo script disattiva le variabili di sostituzione (SET DEFINE OFF), così una e commerciale nei tuoi dati resta tale.
La riga di comando carica gratis i file direttamente in un database SQLite. Con IntoSQL Pro, lei e l'app desktop caricano anche in PostgreSQL, MySQL e MariaDB. Per SQL Server e Oracle, esegui lo script.
Cosa sapere sui file JSON e su ogni database
Cosa legge IntoSQL nei file JSON
- Il file può essere un array di oggetti, un oggetto che contiene quell'array sotto una chiave come data, oppure un oggetto per riga (NDJSON).
- Ogni chiave diventa una colonna. Oggetti e array dentro un valore restano testo JSON.
- I numeri mantengono le cifre esatte, e le date ISO 8601 diventano date o timestamp.
Cosa sapere su ogni database
- Scegli il database dopo aver aperto il file: ognuno riceve i tipi che supporta.
Come viene salvato ogni tipo di valore in ogni database
| Valore | PostgreSQL | MySQL | MariaDB | SQLite | SQL Server | Oracle |
|---|---|---|---|---|---|---|
| Sì e no | boolean | tinyint(1) | tinyint(1) | BOOLEAN | bit | NUMBER(1) |
| Numeri interi | integer | int | int | INTEGER | int | NUMBER(10) |
| Numeri interi grandi | bigint | bigint | bigint | INTEGER | bigint | NUMBER(19) |
| Decimali | numeric(p,s) | decimal(p,s)double | decimal(p,s)double | NUMERIC(p,s)TEXT | decimal(p,s) | NUMBER(p,s) |
| Numeri in virgola mobile | double precision | double | double | REAL | float | BINARY_DOUBLE |
| Date | date | date | date | DATE | date | DATE |
| Orari | time | time(6)time | time(6)time | TIME | time | INTERVAL DAY(0) TO SECOND |
| Date con ora | timestamp | datetime(6)datetime | datetime(6)datetime | DATETIME | datetime2 | TIMESTAMP |
| Date con ora e fuso | timestamptz | datetime(6)datetime | datetime(6)datetime | DATETIME | datetimeoffset | TIMESTAMP WITH TIME ZONE |
| Testo | text | varchar(n)textmediumtextlongtext | varchar(n)textmediumtextlongtext | TEXT | nvarchar(n)nvarchar(max) | VARCHAR2(n CHAR)CLOB |
Domande su JSON in SQL
Non trovi la risposta? Scrivici dalla pagina dei contatti e ti risponde una persona. Pagina dei contatti
Come converto JSON in SQL?
Trascina il file sul convertitore in cima a questa pagina e scegli il tuo database: PostgreSQL, MySQL, MariaDB, SQLite, SQL Server o Oracle. Ognuno riceve i tipi che supporta. Scarica lo script ed eseguilo nel tuo database.
Che forma deve avere il file JSON?
Un array di oggetti, un oggetto che contiene quell'array sotto una chiave come data, oppure un oggetto per riga (NDJSON). Ogni chiave diventa una colonna.
Quali tipi usa in ogni database?
Ogni database ha i suoi: i valori sì e no sono boolean in PostgreSQL, tinyint(1) in MySQL e MariaDB, bit in SQL Server e NUMBER(1) in Oracle. La tabella in questa pagina elenca ogni tipo di valore.
Mantiene gli zeri iniziali?
Sì. Un codice come 000481 resta testo in ogni database, scritto come '000481', quindi nessuno zero va perso.
Può caricare i dati senza uno script?
Sì. La riga di comando carica gratis in SQLite e, con IntoSQL Pro, l'app desktop e la riga di comando caricano in PostgreSQL, MySQL e MariaDB. Per SQL Server e Oracle, esegui lo script.
Quanto può essere grande il file JSON?
L'NDJSON, un oggetto per riga, viene letto man mano che arriva, quindi nel browser funzionano file di diversi gigabyte. Un documento JSON viene letto per intero, quindi il limite è la memoria che il browser concede a questa pagina. L'app desktop e la riga di comando accettano file di qualsiasi dimensione.