Перейти до вмісту

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 і схема отримана з нього ніколи не покидають ваш пристрій.