JSON in SQL umwandeln
Leg deine JSON-Datei ab und wähle deine Datenbank, um ein SQL-Skript mit CREATE TABLE- und INSERT-Anweisungen zu erhalten. Jede Spalte bekommt einen Typ, und jede Korrektur wird mit Zeile und Spalte aufgeführt.
4 Zeilen konvertiert, 2 Korrekturen, keine abgelehnt
| Zeile | ||||||
|---|---|---|---|---|---|---|
| 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;
Korrekturen
- Führende Nullen in "pedido" behalten: 000481 bleibt 000481, gespeichert als Text.
- "pagado" enthält Ja- und Nein-Wörter (sí), gespeichert als Boolean.
Deine Datei wird auf diesem Computer umgewandelt und nie hochgeladen.
Weitere Beispiele:
Eine JSON-Datei, sechs Datenbanken
Das Beispiel oben, pedidos_2024.json, und der Typ, den jede seiner Spalten in jeder Datenbank bekommt.
| In der Datei | Erster Wert | 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) |
Das Skript in deine Datenbank laden
Der Download ist eine einfache .sql-Datei. Jede Datenbank führt sie mit ihren eigenen Werkzeugen aus.
PostgreSQL
psql -v ON_ERROR_STOP=1 -d mydb -f pedidos_2024.postgresql.sqlON_ERROR_STOP lässt psql beim ersten Fehler anhalten. Das Skript läuft in einer Transaktion, ein fehlgeschlagener Import lässt die Datenbank also unverändert.
MySQL
mysql --default-character-set=utf8mb4 mydb < pedidos_2024.mysql.sqlDas Skript setzt utf8mb4 selbst; das Flag sorgt dafür, dass der Client genauso sendet, damit Akzente unverändert ankommen.
MariaDB
mariadb --default-character-set=utf8mb4 mydb < pedidos_2024.mariadb.sqlDas Skript setzt utf8mb4 selbst; das Flag sorgt dafür, dass der Client genauso sendet, damit Akzente unverändert ankommen.
SQLite
sqlite3 pedidos_2024.db < pedidos_2024.sqlite.sqlDie Datenbankdatei wird angelegt, falls sie nicht existiert. Der Konverter lädt auch eine fertige .sqlite-Datenbank herunter, ganz ohne Befehl.
SQL Server
sqlcmd -S localhost -d mydb -f 65001 -i pedidos_2024.sql_server.sql-f 65001 liest die Datei als UTF-8, damit Akzente und ñ so ankommen, wie sie geschrieben sind.
Oracle
sqlplus user@//localhost/mydb @pedidos_2024.oracle.sqlDas Skript schaltet Substitutionsvariablen aus (SET DEFINE OFF), damit ein kaufmännisches Und in deinen Daten erhalten bleibt.
Die Kommandozeile lädt Dateien kostenlos direkt in eine SQLite-Datenbank. Mit IntoSQL Pro laden sie und die Desktop-App auch in PostgreSQL, MySQL und MariaDB. Für SQL Server und Oracle führst du das Skript aus.
Was du über JSON-Dateien und jede Datenbank wissen solltest
Was IntoSQL in JSON-Dateien liest
- Die Datei kann ein Array von Objekten sein, ein Objekt, das dieses Array unter einem Schlüssel wie data enthält, oder ein Objekt pro Zeile (NDJSON).
- Jeder Schlüssel wird zu einer Spalte. Objekte und Arrays innerhalb eines Werts bleiben als JSON-Text erhalten.
- Zahlen behalten ihre exakten Ziffern, und ISO-8601-Datumswerte werden zu Datums- oder Zeitstempelwerten.
Was du über jede Datenbank wissen solltest
- Wähle die Datenbank, sobald die Datei geöffnet ist: Jede bekommt die Typen, die sie unterstützt.
Wie jede Art von Wert in jeder Datenbank gespeichert wird
| Wert | PostgreSQL | MySQL | MariaDB | SQLite | SQL Server | Oracle |
|---|---|---|---|---|---|---|
| Ja und nein | boolean | tinyint(1) | tinyint(1) | BOOLEAN | bit | NUMBER(1) |
| Ganze Zahlen | integer | int | int | INTEGER | int | NUMBER(10) |
| Große ganze Zahlen | bigint | bigint | bigint | INTEGER | bigint | NUMBER(19) |
| Dezimalzahlen | numeric(p,s) | decimal(p,s)double | decimal(p,s)double | NUMERIC(p,s)TEXT | decimal(p,s) | NUMBER(p,s) |
| Gleitkommazahlen | double precision | double | double | REAL | float | BINARY_DOUBLE |
| Datumswerte | date | date | date | DATE | date | DATE |
| Uhrzeiten | time | time(6)time | time(6)time | TIME | time | INTERVAL DAY(0) TO SECOND |
| Datum mit Uhrzeit | timestamp | datetime(6)datetime | datetime(6)datetime | DATETIME | datetime2 | TIMESTAMP |
| Datum mit Uhrzeit und Zeitversatz | timestamptz | datetime(6)datetime | datetime(6)datetime | DATETIME | datetimeoffset | TIMESTAMP WITH TIME ZONE |
| Text | text | varchar(n)textmediumtextlongtext | varchar(n)textmediumtextlongtext | TEXT | nvarchar(n)nvarchar(max) | VARCHAR2(n CHAR)CLOB |
Fragen zu JSON zu SQL
Keine Antwort gefunden? Schreib uns über die Kontaktseite, und ein Mensch antwortet. Kontaktseite
Wie konvertiere ich JSON zu SQL?
Leg deine Datei auf den Konverter oben auf dieser Seite und wähle deine Datenbank: PostgreSQL, MySQL, MariaDB, SQLite, SQL Server oder Oracle. Jede bekommt die Typen, die sie unterstützt. Lade das Skript herunter und führe es in deiner Datenbank aus.
Welche Form braucht die JSON-Datei?
Ein Array von Objekten, ein Objekt, das dieses Array unter einem Schlüssel wie data enthält, oder ein Objekt pro Zeile (NDJSON). Jeder Schlüssel wird zu einer Spalte.
Welche Typen werden in jeder Datenbank verwendet?
Jede Datenbank bekommt ihre eigenen: Ja/Nein-Werte sind boolean in PostgreSQL, tinyint(1) in MySQL und MariaDB, bit in SQL Server und NUMBER(1) in Oracle. Die Tabelle auf dieser Seite listet jede Art von Wert.
Bleiben führende Nullen erhalten?
Ja. Ein Code wie 000481 bleibt in jeder Datenbank Text, geschrieben als '000481', damit keine Null verloren geht.
Kann es die Daten ohne Skript laden?
Ja. Die Kommandozeile lädt kostenlos in SQLite, und mit IntoSQL Pro laden die Desktop-App und die Kommandozeile in PostgreSQL, MySQL und MariaDB. Für SQL Server und Oracle führst du das Skript aus.
Wie groß darf die JSON-Datei sein?
NDJSON, ein Objekt pro Zeile, wird beim Einströmen gelesen, daher funktionieren Dateien von mehreren Gigabyte im Browser. Ein JSON-Dokument wird vollständig gelesen, seine Grenze ist also der Speicher, den der Browser dieser Seite gibt. Die Desktop-App und die Kommandozeile nehmen Dateien jeder Größe.