Перейти к содержимому

Конвертация JSON в SQL

Перетащите файл JSON и выберите базу данных, чтобы получить скрипт SQL с командами CREATE TABLE и INSERT. Каждый столбец получает тип, а каждое исправление указано со строкой и столбцом.

Ваш файл
jsonpedidos_2024.jsonПример файла, 771 Б
Ваша база данных

4 строки конвертированы, 2 исправления, ни одна не отклонена

Показать
Первые строки pedidos_2024.json, каждое исправление отмечено
Строка
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;

Исправления

  1. В "pedido" сохранены ведущие нули: 000481 остается 000481 и хранится как текст.
  2. "pagado" содержит слова да и нет (sí), они сохранены как логические значения.

Файл конвертируется на этом компьютере и никуда не загружается.

Другие примеры:

Один файл JSON, шесть баз данных

Пример выше, pedidos_2024.json, и тип, который каждый его столбец получает в каждой базе данных.

В файлеПервое значение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)

Загрузите скрипт в свою базу данных

Вы скачиваете обычный файл .sql. Каждая база данных запускает его своими средствами.

  • PostgreSQL

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

    ON_ERROR_STOP останавливает psql на первой ошибке. Скрипт выполняется в одной транзакции, поэтому неудачная загрузка оставляет базу без изменений.

  • MySQL

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

    Скрипт сам задает utf8mb4; флаг заставляет клиент передавать данные так же, поэтому кириллица и другие символы доходят без искажений.

  • MariaDB

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

    Скрипт сам задает utf8mb4; флаг заставляет клиент передавать данные так же, поэтому кириллица и другие символы доходят без искажений.

  • SQLite

    sqlite3 pedidos_2024.db < pedidos_2024.sqlite.sql

    Файл базы данных создается, если его нет. Конвертер также скачивает готовую базу .sqlite, вообще без команд.

  • SQL Server

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

    -f 65001 читает файл как UTF-8, поэтому кириллица и ñ доходят в том виде, в котором записаны.

  • Oracle

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

    Скрипт отключает переменные подстановки (SET DEFINE OFF), поэтому амперсанд в ваших данных остается амперсандом.

Командная строка бесплатно загружает файлы прямо в базу SQLite. С IntoSQL Pro она и приложение для компьютера загружают также в PostgreSQL, MySQL и MariaDB. Для SQL Server и Oracle запустите скрипт.

Что нужно знать о файлах JSON и каждой базе данных

Что IntoSQL читает в файлах JSON

  • Файл может быть массивом объектов, объектом, который хранит этот массив под ключом вроде data, или одним объектом на строку (NDJSON).
  • Каждый ключ становится столбцом. Объекты и массивы внутри значения сохраняются как текст JSON.
  • Числа сохраняют все свои цифры, а даты ISO 8601 становятся датами или метками времени.

Что нужно знать о каждой базе данных

  • Выберите базу данных после открытия файла: каждая получает типы, которые поддерживает.

Как каждый вид значений хранится в каждой базе данных

ЗначениеPostgreSQLMySQLMariaDBSQLiteSQL ServerOracle
Да и нетbooleantinyint(1)tinyint(1)BOOLEANbitNUMBER(1)
Целые числаintegerintintINTEGERintNUMBER(10)
Большие целые числаbigintbigintbigintINTEGERbigintNUMBER(19)
Десятичные числаnumeric(p,s)decimal(p,s)doubledecimal(p,s)doubleNUMERIC(p,s)TEXTdecimal(p,s)NUMBER(p,s)
Числа с плавающей точкойdouble precisiondoubledoubleREALfloatBINARY_DOUBLE
ДатыdatedatedateDATEdateDATE
Время сутокtimetime(6)timetime(6)timeTIMEtimeINTERVAL DAY(0) TO SECOND
Даты со временемtimestampdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetime2TIMESTAMP
Даты со временем и смещениемtimestamptzdatetime(6)datetimedatetime(6)datetimeDATETIMEdatetimeoffsetTIMESTAMP WITH TIME ZONE
Текстtextvarchar(n)textmediumtextlongtextvarchar(n)textmediumtextlongtextTEXTnvarchar(n)nvarchar(max)VARCHAR2(n CHAR)CLOB

Вопросы о JSON в SQL

Нет ответа на ваш вопрос? Напишите нам через страницу контактов, и вам ответит человек. Страница контактов

Как конвертировать JSON в SQL?

Перетащите файл в конвертер в верхней части этой страницы и выберите базу данных: PostgreSQL, MySQL, MariaDB, SQLite, SQL Server или Oracle. Каждая получает типы, которые поддерживает. Скачайте скрипт и запустите его в своей базе.

Какой структуры должен быть файл JSON?

Массив объектов, объект с таким массивом под ключом вроде data или по одному объекту в строке (NDJSON). Каждый ключ становится столбцом.

Какие типы используются в каждой базе данных?

У каждой базы свои: значения да и нет - это boolean в PostgreSQL, tinyint(1) в MySQL и MariaDB, bit в SQL Server и NUMBER(1) в Oracle. Таблица на этой странице перечисляет каждый вид значений.

Сохраняются ли ведущие нули?

Да. Код вроде 000481 остается текстом в любой базе данных и записывается как '000481', поэтому ни один ноль не теряется.

Можно ли загрузить данные без скрипта?

Да. Командная строка бесплатно загружает в SQLite, а с IntoSQL Pro приложение для компьютера и командная строка загружают в PostgreSQL, MySQL и MariaDB. Для SQL Server и Oracle запустите скрипт.

Насколько большим может быть файл JSON?

NDJSON, по одному объекту в строке, читается потоково, поэтому в браузере работают файлы в несколько гигабайт. Документ JSON читается целиком, поэтому его предел - память, которую браузер выделяет этой странице. Приложение для компьютера и командная строка принимают файлы любого размера.