Przejdź do treści

Konwersja JSON do SQL

Upuść plik JSON i wybierz bazę danych, aby dostać skrypt SQL z instrukcjami CREATE TABLE i INSERT. Każda kolumna dostaje typ, a każda poprawka jest wymieniona z wierszem i kolumną.

Twój plik
jsonpedidos_2024.jsonPlik przykładowy, 771 B
Twoja baza danych

4 wiersze przekonwertowane, 2 poprawki, brak odrzuconych

Pokaż
Pierwsze wiersze pliku pedidos_2024.json, z zaznaczoną każdą poprawką
Wiersz
2000481Peña Muñoz2024-02-03T10:15:00Z1234.5true
3000482José Ángel Ruiz2024-02-15T16:40:00Z99.9falseEntrega en la tarde
4000483Zoë Ortíz2024-02-29T09:05:00Z12true
5000484Ñuño Castañeda2024-03-11T13:30:00Z980.75sí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;

Poprawki

  1. Zachowano zera wiodące w "pedido": 000481 pozostaje 000481, zapisane jako tekst.
  2. "pagado" zawiera słowa tak i nie (sí), zapisane jako wartości logiczne.

Plik jest konwertowany na tym komputerze i nigdy nie jest wysyłany.

Inne przykłady:

Jeden plik JSON, sześć baz danych

Przykład powyżej, pedidos_2024.json, i typ, jaki każda jego kolumna dostaje w każdej bazie danych.

W plikuPierwsza wartośćPostgreSQLMySQLMariaDBSQLiteSQL ServerOracle
pedido000481textvarchar(8)varchar(8)TEXTnvarchar(8)VARCHAR2(8 CHAR)
clientePeña Muñoztextvarchar(16)varchar(16)TEXTnvarchar(16)VARCHAR2(16 CHAR)
fecha2024-02-03T10:15:00ZtimestamptzdatetimedatetimeDATETIMEdatetimeoffsetTIMESTAMP WITH TIME ZONE
total1234.5numeric(6,2)decimal(6,2)decimal(6,2)NUMERIC(6,2)decimal(6,2)NUMBER(6,2)
pagadotruebooleantinyint(1)tinyint(1)BOOLEANbitNUMBER(1)
notas-textvarchar(32)varchar(32)TEXTnvarchar(32)VARCHAR2(32 CHAR)

Załaduj skrypt do swojej bazy danych

Pobierasz zwykły plik .sql. Każda baza danych uruchamia go własnymi narzędziami.

  • PostgreSQL

    psql -v ON_ERROR_STOP=1 -d mydb -f pedidos_2024.postgresql.sql

    ON_ERROR_STOP zatrzymuje psql przy pierwszym błędzie. Skrypt działa w jednej transakcji, więc nieudane ładowanie zostawia bazę bez zmian.

  • MySQL

    mysql --default-character-set=utf8mb4 mydb < pedidos_2024.mysql.sql

    Skrypt sam ustawia utf8mb4; flaga sprawia, że klient wysyła go tak samo, więc polskie znaki docierają bez zmian.

  • MariaDB

    mariadb --default-character-set=utf8mb4 mydb < pedidos_2024.mariadb.sql

    Skrypt sam ustawia utf8mb4; flaga sprawia, że klient wysyła go tak samo, więc polskie znaki docierają bez zmian.

  • SQLite

    sqlite3 pedidos_2024.db < pedidos_2024.sqlite.sql

    Plik bazy danych powstaje, jeśli nie istnieje. Konwerter pobiera też gotową bazę .sqlite, bez żadnego polecenia.

  • SQL Server

    sqlcmd -S localhost -d mydb -f 65001 -i pedidos_2024.sql_server.sql

    -f 65001 odczytuje plik jako UTF-8, więc znaki diakrytyczne i ñ docierają tak, jak je zapisano.

  • Oracle

    sqlplus user@//localhost/mydb @pedidos_2024.oracle.sql

    Skrypt wyłącza zmienne podstawiania (SET DEFINE OFF), więc znak & w danych pozostaje znakiem &.

Wiersz poleceń za darmo ładuje pliki prosto do bazy SQLite. Z IntoSQL Pro wiersz poleceń i aplikacja na komputer ładują też do PostgreSQL, MySQL i MariaDB. Dla SQL Server i Oracle uruchom skrypt.

Co warto wiedzieć o plikach JSON i każdej bazie danych

Co IntoSQL odczytuje w plikach JSON

  • Plik może być tablicą obiektów, obiektem, który trzyma tę tablicę pod kluczem takim jak data, albo jednym obiektem na wiersz (NDJSON).
  • Każdy klucz staje się kolumną. Obiekty i tablice wewnątrz wartości są zachowywane jako tekst JSON.
  • Liczby zachowują dokładne cyfry, a daty ISO 8601 stają się datami lub znacznikami czasu.

Co warto wiedzieć o każdej bazie danych

  • Wybierz bazę danych po otwarciu pliku: każda dostaje typy, które obsługuje.

Jak każdy rodzaj wartości jest zapisywany w każdej bazie danych

WartośćPostgreSQLMySQLMariaDBSQLiteSQL ServerOracle
Tak i niebooleantinyint(1)tinyint(1)BOOLEANbitNUMBER(1)
Liczby całkowiteintegerintintINTEGERintNUMBER(10)
Duże liczby całkowitebigintbigintbigintINTEGERbigintNUMBER(19)
Liczby dziesiętnenumeric(p,s)decimal(p,s)doubledecimal(p,s)doubleNUMERIC(p,s)TEXTdecimal(p,s)NUMBER(p,s)
Liczby zmiennoprzecinkowedouble precisiondoubledoubleREALfloatBINARY_DOUBLE
DatydatedatedateDATEdateDATE
Godzinytimetime(6)timetime(6)timeTIMEtimeINTERVAL DAY(0) TO SECOND
Daty z godzinątimestampdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetime2TIMESTAMP
Daty z godziną i przesunięciemtimestamptzdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetimeoffsetTIMESTAMP WITH TIME ZONE
Teksttextvarchar(n)textmediumtextlongtextvarchar(n)textmediumtextlongtextTEXTnvarchar(n)nvarchar(max)VARCHAR2(n CHAR)CLOB

Pytania o JSON do SQL

Nie ma tu odpowiedzi? Napisz do nas przez stronę kontaktu, a odpowie człowiek. Strona kontaktu

Jak przekonwertować JSON do SQL?

Upuść plik na konwerter u góry tej strony i wybierz bazę danych: PostgreSQL, MySQL, MariaDB, SQLite, SQL Server lub Oracle. Każda dostaje typy, które obsługuje. Pobierz skrypt i uruchom go w swojej bazie.

Jaki kształt musi mieć plik JSON?

Tablica obiektów, obiekt zawierający taką tablicę pod kluczem, na przykład data, albo jeden obiekt w każdym wierszu (NDJSON). Każdy klucz staje się kolumną.

Jakich typów używa w każdej bazie danych?

Każda baza dostaje własne: wartości tak i nie to boolean w PostgreSQL, tinyint(1) w MySQL i MariaDB, bit w SQL Server i NUMBER(1) w Oracle. Tabela na tej stronie wymienia każdy rodzaj wartości.

Czy zachowuje zera wiodące?

Tak. Kod taki jak 000481 pozostaje tekstem w każdej bazie danych, zapisany jako '000481', więc żadne zero nie ginie.

Czy może załadować dane bez skryptu?

Tak. Wiersz poleceń za darmo ładuje do SQLite, a z IntoSQL Pro aplikacja na komputer i wiersz poleceń ładują do PostgreSQL, MySQL i MariaDB. Dla SQL Server i Oracle uruchom skrypt.

Jak duży może być plik JSON?

NDJSON, jeden obiekt w wierszu, jest odczytywany strumieniowo, więc w przeglądarce działają pliki o wielkości kilku gigabajtów. Dokument JSON jest odczytywany w całości, więc jego limitem jest pamięć, jaką przeglądarka daje tej stronie. Aplikacja na komputer i wiersz poleceń przyjmują pliki dowolnej wielkości.