Перейти к содержанию

JSON в SQL CREATE TABLE

Преобразуйте JSON объект или массив объектов в SQL CREATE TABLE выражение.

Входные данные
Выходные данные

JSON в SQL CREATE TABLE

Вставьте JSON объект или массив объектов, и этот инструмент создаст готовое к запуску SQL CREATE TABLE выражение — укажите на примерный API ответ или экспортированную запись, чтобы получить стартовую схему вместо ручного ввода каждой колонки.

Типы колонок автоматически определяются из значений: целые числа становятся INTEGER, числа с дробной частью — DECIMAL, true/false становятся BOOLEAN, строки похожие на 2024-01-15 или 2024-01-15T10:30:00Z становятся DATE или TIMESTAMP, а все остальное становится VARCHAR с предполагаемой длиной, или TEXT свыше 255 символов. Поле отмечается как NOT NULL, если оно присутствует и никогда не null во всех пастах; поле с названием id становится PRIMARY KEY. Выберите диалект — ANSI SQL, MySQL, PostgreSQL, SQLite или SQL Server — чтобы соответствовать небольшим различиям в названиях типов. Вложенные объекты могут быть развернуты в префиксированные колонки (address.city становится address_city) или сохранены как одна JSON колонка, а «Конвертировать имена в snake_case» преобразует camelCase JSON ключи в обычные SQL названия колонок.

С более чем одной записью включение «Добавить INSERT выражения» добавит по одному INSERT для каждой записи под CREATE TABLE, используя уже определенные колонки — удобно для заполнения тестовой базы из JSON файла. Определение типов всегда анализирует все предоставленные записи, а не только первую, поэтому поле присутствующее не всегда корректно остается nullable вместо неверного предположения.

Все выполняется в вашем браузере. JSON который вы вставляете и схема сгенерированная из него никогда не загружаются никуда — это важно когда примеры данных берутся из production экспорта. Скопируйте результат, загрузите как .txt файл, или отправьте результат обратно в ввод чтобы продолжить уточнение схемы.

FAQ

Как определяются типы колонок?
Каждая колонка определяется из всех значений поля во всех предоставленных записях — не только из первой. Поле со смешанными типами (число в одной записи, строка в другой) откатывается на текстовую колонку, поскольку это единственный тип который может безопасно хранить оба.
Что происходит с полем названным «id»?
Колонка с названием id (после преобразования snake_case если включено) становится PRIMARY KEY. Синтаксис auto-increment или identity достаточно отличается между диалектами что остается пропущенным — добавьте его сами когда выберете стратегию.
В чем разница между двумя опциями вложенных объектов?
«Развернуть с подчеркиванием» преобразует вложенный объект вроде address: { city } в отдельную колонку address_city. «Сохранить как JSON колонку» хранит весь вложенный объект как одну JSON (или текстовую) колонку вместо этого. Массивы всегда хранятся как одна JSON/текстовая колонка, поскольку одна строка не может хранить список переменной длины.
Может ли оно генерировать данные для вставки также как и таблицу?
Да. Включите «Добавить INSERT выражения» и если вы вставили массив объектов, одно INSERT выражение на запись добавляется под CREATE TABLE используя уже определенные колонки и типы.
Мой JSON загружается куда-то?
Нет. Парсинг, определение типов и генерация SQL все выполняются локально в вашем браузере — ваш JSON и схема полученная из него никогда не покидают ваше устройство.