JSON omzetten naar MariaDB
Zet je JSON-bestand neer en krijg een MariaDB-script met CREATE TABLE- en INSERT-statements. Elke kolom krijgt een type, en elke correctie wordt vermeld met rij en kolom.
4 rijen geconverteerd, 2 correcties, geen afgewezen
| Rij | ||||||
|---|---|---|---|---|---|---|
| 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 MariaDB.
SET NAMES utf8mb4;
SET SESSION sql_mode = REPLACE(@@sql_mode, 'NO_BACKSLASH_ESCAPES', '');
START TRANSACTION;
CREATE TABLE pedidos_2024 (
pedido varchar(8) NOT NULL,
cliente varchar(16) NOT NULL,
fecha datetime NOT NULL,
total decimal(6,2) NOT NULL,
pagado tinyint(1) NOT NULL,
notas varchar(32)
) DEFAULT CHARSET=utf8mb4;
INSERT INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES
('000481', 'Peña Muñoz', '2024-02-03 10:15:00', 1234.5, TRUE, NULL),
('000482', 'José Ángel Ruiz', '2024-02-15 16:40:00', 99.9, FALSE, 'Entrega en la tarde'),
('000483', 'Zoë Ortíz', '2024-02-29 09:05:00', 12, TRUE, NULL),
('000484', 'Ñuño Castañeda', '2024-03-11 13:30:00', 980.75, TRUE, 'Factura con "RFC"');
COMMIT;
Correcties
- Voorloopnullen behouden in "pedido": 000481 blijft 000481, opgeslagen als tekst.
- "pagado" bevat ja- en nee-woorden (sí), opgeslagen als boolean.
Je bestand wordt op deze computer omgezet en nooit geüpload.
Andere voorbeelden:
Van JSON naar MariaDB, kolom voor kolom
Het voorbeeld hierboven, pedidos_2024.json, zoals IntoSQL het voor MariaDB schrijft: wat elke kolom in het bestand bevat, welk type ze krijgt en hoe haar eerste waarde in het script terechtkomt.
| In het bestand | Eerste waarde | Kolom | Type in MariaDB | In het script |
|---|---|---|---|---|
| pedido | 000481 | pedido | varchar(8) | '000481' |
| cliente | Peña Muñoz | cliente | varchar(16) | 'Peña Muñoz' |
| fecha | 2024-02-03T10:15:00Z | fecha | datetime | '2024-02-03 10:15:00' |
| total | 1234.5 | total | decimal(6,2) | 1234.5 |
| pagado | true | pagado | tinyint(1) | TRUE |
| notas | - | notas | varchar(32) | NULL |
Het script in MariaDB laden
De download is een standaard .sql-bestand. Voer het uit met de eigen tools van MariaDB.
Vanuit een terminal
mariadb --default-character-set=utf8mb4 mydb < pedidos_2024.mariadb.sqlHet script stelt zelf utf8mb4 in; de vlag laat de client het op dezelfde manier versturen, zodat accenten intact aankomen.
Vanuit een databasetool
Open het script in HeidiSQL of DBeaver en voer het uit.
Zonder scriptPro
IntoSQL Pro laadt het bestand rechtstreeks in MariaDB vanuit de desktopapp of de opdrachtregel, zonder een script te schrijven.
intosql load pedidos_2024.json --into mariadb://user@localhost/mydbWat je moet weten over JSON-bestanden en MariaDB
Wat IntoSQL leest in JSON-bestanden
- Het bestand kan een array van objecten zijn, een object dat die array onder een sleutel zoals data bevat, of één object per regel (NDJSON).
- Elke sleutel wordt een kolom. Objecten en arrays binnen een waarde blijven JSON-tekst.
- Getallen behouden hun exacte cijfers, en ISO 8601-datums worden datums of tijdstempels.
Wat je moet weten over MariaDB
- Ja- en nee-waarden worden tinyint(1). Tekst tot 255 tekens is varchar; langere tekst is text, mediumtext of longtext, afhankelijk van de grootte.
- Het script gebruikt utf8mb4 en stelt de SQL-modus in, zodat accenten, emoji, backslashes en regeleinden worden geladen zoals ze geschreven zijn.
- Het datetime-type van MariaDB slaat geen tijdzone op.
Hoe elk soort waarde in MariaDB wordt opgeslagen
| Waarde | MariaDB |
|---|---|
| Ja en nee | tinyint(1) |
| Gehele getallen | int |
| Grote gehele getallen | bigint |
| Decimale getallen | decimal(p,s)double |
| Drijvendekommagetallen | double |
| Datums | date |
| Tijdstippen | time(6)time |
| Datums met tijd | datetime(6)datetime |
| Datums met tijd en tijdverschil | datetime(6)datetime |
| Tekst | varchar(n)textmediumtextlongtext |
Vragen over JSON naar MariaDB
Staat je vraag er niet bij? Schrijf ons via de contactpagina en een mens antwoordt. Contactpagina
Hoe zet ik JSON om naar MariaDB?
Zet je bestand neer op de converter bovenaan deze pagina. Die vindt de kopregel, leest elke waarde en schrijft het MariaDB-script, met elke correctie vermeld. Download het script en voer het uit met the mariadb client.
Welke vorm moet het JSON-bestand hebben?
Een array van objecten, een object dat die array onder een sleutel zoals data bevat, of één object per regel (NDJSON). Elke sleutel wordt een kolom.
Welke MariaDB-types gebruikt het?
Ja/nee-waarden worden tinyint(1), gehele getallen int, decimalen decimal(p,s), datums date, datums met tijd datetime(6) en tekst varchar(n). De groottes volgen uit de langste waarde in elke kolom.
Blijven voorloopnullen behouden in MariaDB?
Ja. Een code zoals 000481 blijft tekst, dus MariaDB slaat hem op als varchar(8) en het script schrijft hem als '000481'.
Kan het de data zonder script in MariaDB laden?
Ja, met IntoSQL Pro. De desktopapp en de opdrachtregel maken verbinding met MariaDB en laden de rijen rechtstreeks, nadat ze eerst de tabel hebben aangemaakt.
Hoe groot mag het JSON-bestand zijn?
NDJSON, één object per regel, wordt gelezen terwijl het binnenstroomt, dus bestanden van meerdere gigabytes werken in de browser. Een JSON-document wordt in zijn geheel gelezen, dus de grens is het geheugen dat de browser deze pagina geeft. De desktopapp en de opdrachtregel nemen bestanden van elke grootte.