Конвертер JSON в SQL

Вставьте массив объектов JSON — ответ API или выгрузку — и получите SQL, который создаёт таблицу и загружает строки. Типы столбцов подбираются по значениям, а кавычки ставятся по правилам выбранной СУБД.

Строк: 3, столбцов: 6.

Работает в браузере: всё, что вы вводите, никуда не отправляется.

Как пользоваться

  1. Вставьте массив объектов JSON. Один объект тоже подойдёт — получится одна строка.
  2. Введите имя таблицы (можно schema.table) и выберите MySQL, PostgreSQL или SQLite.
  3. Отметьте, нужны ли CREATE TABLE, INSERT или оба, и сколько строк класть в один INSERT.
  4. Скопируйте SQL и выполните его в клиенте базы данных.

Как это работает

Столбцы — все ключи, найденные в объектах, в порядке первого появления. Тип столбца выбирается по его значениям, а если ключа в объекте нет, в этой строке будет NULL. Строки записываются многострочными INSERT, которые понимают все три СУБД; большой массив делится по настройке «Строк в одном INSERT».

Числа пишутся как есть, логические значения — TRUE/FALSE (1/0 в SQLite), а в столбце со смешанными значениями каждое значение пишется текстом в кавычках, чтобы INSERT подходил к типу TEXT.

Пример

[{"id":1,"name":"Ann","tags":["a"]},{"id":2,"name":"Bob"}] с таблицей users для PostgreSQL даёт:

CREATE TABLE "users" (
  "id" BIGINT NOT NULL,
  "name" TEXT NOT NULL,
  "tags" JSONB
);

INSERT INTO "users" ("id", "name", "tags") VALUES
  (1, 'Ann', '["a"]'),
  (2, 'Bob', NULL);

В объекте Bob нет tags, поэтому столбец допускает NULL, а в его строке стоит NULL.

Советы

  • PRIMARY KEY и индексы добавьте сами: генератор не знает, какой столбец ключевой.
  • Даты в JSON — это строки, поэтому они становятся TEXT; поменяйте тип на DATE или TIMESTAMP, если значения — даты ISO.
  • Целые больше 9 007 199 254 740 991 теряют точность при чтении JSON в JavaScript; храните большие идентификаторы строками.
  • Для данных в CSV есть инструмент «CSV в SQL INSERT».

Частые вопросы

Как выбираются типы столбцов?

По ненулевым значениям каждого ключа: только целые числа — BIGINT (INTEGER в SQLite); есть дробные — DOUBLE, DOUBLE PRECISION или REAL; true/false — BOOLEAN (INTEGER 1/0 в SQLite); строки — TEXT или VARCHAR(255) в MySQL, если ни одно значение не длиннее; объекты и массивы — JSON, JSONB или TEXT. Ключ со значениями разных видов получает TEXT.

Когда столбец получает NOT NULL?

Когда ключ есть в каждом объекте и нигде не равен null. Если ключа нет в части объектов или где-то стоит null, столбец допускает NULL, и в этих строках будет NULL.

Как экранируются строки?

Строки берутся в одинарные кавычки, а кавычка внутри удваивается: Д'Артаньян становится 'Д''Артаньян'. Для MySQL удваиваются и обратные слеши, потому что MySQL читает их как экранирование. Имена таблиц и столбцов берутся в обратные кавычки в MySQL и в двойные в PostgreSQL и SQLite.

Что происходит с вложенными объектами и массивами?

Они сохраняются текстом JSON в одном столбце: JSON в MySQL, JSONB в PostgreSQL, TEXT в SQLite (её функции JSON читают текст). На отдельные таблицы генератор их не раскладывает.

Мои данные куда-то отправляются?

Нет. SQL строит JavaScript в вашем браузере.

Ещё в разделе «Разработчикам»

Все инструменты раздела: Разработчикам ·Обновлено 4 ноября 2026 г.

Настройки конфиденциальности

Google Analytics показывает нам, какими инструментами пользуются и работают ли они. Он может ставить cookie. Ваш выбор сохраняется в этом браузере.