UTILS.
100% w przeglądarce
🗄

JSON na SQL CREATE TABLE

Wywnioskuj SQL CREATE TABLE (oraz opcjonalne INSERT) z tablicy JSON obiektów, automatycznie dobierając typy kolumn dla MySQL, PostgreSQL lub SQLite.

— wynik pojawi się tutaj —

O tym narzędziu

Narzędzie JSON na SQL CREATE TABLE odczytuje tablicę JSON obiektów (lub pojedynczy obiekt) i wnioskuje pasującą definicję tabeli SQL, dobierając typ każdej kolumny z wartości, które faktycznie widzi. Działa w całości w Twojej przeglądarce — JSON jest parsowany za pomocą natywnego JSON.parse i nigdy nie opuszcza Twojego urządzenia — więc możesz wkleić zrzut API lub eksport bazy danych i utworzyć tabelę w jednym kroku.

Typy kolumn są wnioskowane dla każdego pola we wszystkich wierszach: wartości, które są wszystkie liczbami całkowitymi, stają się INT (BIGINT, gdy dowolna wartość przekracza 2 147 483 647), liczby z częściami dziesiętnymi stają się DECIMAL(p,s) dopasowane do największej liczby cyfr całkowitych i ułamkowych, które podałeś (lub DOUBLE / REAL, gdy wybierzesz tryb zmiennoprzecinkowy), wartości logiczne mapują się na TINYINT(1)/BOOLEAN, łańcuchy ISO 8601 mapują się na DATETIME lub DATE, zagnieżdżone obiekty i tablice stają się JSON/JSONB, a pozostałe łańcuchy stają się VARCHAR(N), gdzie N to następna potęga dwójki powyżej najdłuższej wartości (TEXT, gdy przekroczy 255). Kolumna, która jest null lub brakuje w dowolnym wierszu, pozostaje NULLABLE; w przeciwnym razie jest NOT NULL. Unikalna, niepusta kolumna o nazwie id lub uuid jest awansowana do PRIMARY KEY, z AUTO_INCREMENT / SERIAL / AUTOINCREMENT dodanym dla kluczy całkowitych.

Przełącznik dialektu przepisuje typy dla MySQL, PostgreSQL (SERIAL, JSONB, TIMESTAMP, DOUBLE PRECISION) lub SQLite (powinowactwa INTEGER / REAL / TEXT) i ujmuje identyfikatory w odpowiedni ogranicznik (backticki dla MySQL, cudzysłowy podwójne w pozostałych). Włącz opcję INSERT, aby dodatkowo emitować jedną instrukcję INSERT na wiersz, z łańcuchami, wartościami logicznymi, liczbami i wartościami JSON zabezpieczonymi i ujętymi w cudzysłów dla wybranego dialektu.

Najczęściej zadawane pytania

Jakiego wejścia oczekuje?
Tablicy JSON płaskich obiektów, takich jak wiersze z API lub eksportu, albo pojedynczego obiektu JSON, który jest traktowany jako tabela jednowierszowa. Wszystkie klucze we wszystkich wierszach są łączone, aby utworzyć kolumny; elementy niebędące obiektami są odrzucane.
Jak dobierane są typy kolumn?
Dla każdej kolumny, z każdej widzianej wartości: wszystkie całkowite na INT/BIGINT, dziesiętne na DECIMAL(p,s) lub DOUBLE, wartości logiczne na TINYINT(1)/BOOLEAN, ISO daty i czasy na DATETIME/DATE, obiekty/tablice na JSON, a inne łańcuchy na VARCHAR(N) (TEXT powyżej 255 znaków).
Które dialekty SQL są obsługiwane?
MySQL, PostgreSQL i SQLite. Przełącznik dialektu przepisuje nazwy typów (SERIAL, JSONB, TIMESTAMP dla Postgres; powinowactwa INTEGER/REAL/TEXT dla SQLite) i używa poprawnego ujmowania identyfikatorów oraz składni auto-inkrementacji.
Jak decyduje się o kluczu głównym?
Jeśli kolumna o nazwie id lub uuid jest obecna i niepusta w każdym wierszu z unikalnymi wartościami, jest oznaczana jako PRIMARY KEY. Klucz całkowity otrzymuje też AUTO_INCREMENT (MySQL), SERIAL (PostgreSQL) lub AUTOINCREMENT (SQLite).

Więcej narzędzi