Przejdź do treści

JSON na SQL CREATE TABLE

Zmienia obiekt JSON lub tablicę obiektów na instrukcję SQL CREATE TABLE.

Wejście
Wynik

JSON na SQL CREATE TABLE

Wklej obiekt JSON lub tablicę obiektów JSON, a to narzędzie wygeneruje z nich gotową instrukcję SQL CREATE TABLE — zamiast ręcznego pisania każdej kolumny możesz skopiować przykład z odpowiedzi API lub wyeksportowanego rekordu i w ten sposób uzyskać początkowy schemat.

Typy kolumn są wnioskowane z konkretnych wartości: liczby całkowite stają się INTEGER, liczby z częścią ułamkową stają się DECIMAL, true/false stają się BOOLEAN, ciągi podobne do 2024-01-15 lub 2024-01-15T10:30:00Z stają się DATE lub TIMESTAMP, a wszystko inne staje się VARCHAR z szacowaną długością, ewentualnie TEXT od 255 znaków. Pole oznaczone NOT NULL to takie, które występuje i nigdy nie jest null w każdym wklejonym rekordzie; pole nazwane id staje się PRIMARY KEY. Wybierz dialekt — ANSI SQL, MySQL, PostgreSQL, SQLite lub SQL Server — aby odpowiadał małym różnicom w nazwach typów. Obiekty zagnieżdżone można spłaszczyć na kolumny z prefiksem (address.city staje się address_city) lub zachować jako jedną kolumnę JSON, a "Zamienić nazwy na snake_case" zmienia klucze JSON w camelCase na konwencjonalne nazwy kolumn SQL.

Z więcej niż jednym rekordem włączenie "Dodać instrukcje INSERT" dodaje jeden INSERT na każdy rekord poniżej CREATE TABLE, korzystając z tych samych wnioskowanych kolumn — przydatne do zasilania testowych baz danych z sztucznych danych JSON. Wnioskowanie zawsze patrzy na wszystkie wklejone rekordy, a nie tylko na pierwszy, więc pole, które czasami występuje, jest prawidłowo pozostawione jako nullable zamiast błędnego zgadywania.

Wszystko działa w Twojej przeglądarce. JSON, który wkleisz, i schemat z niego wygenerowany nigdy się nie przesyłają — to ważne, gdy przykładowe dane pochodzą z eksportu produkcyjnego. Skopiuj wynik, pobierz go jako plik .txt lub wyślij wynik z powrotem na wejście, aby móc dalej ulepszać schemat.

Częste pytania

Jak są decydowane typy kolumn?
Każda kolumna jest wnioskowana na podstawie każdej wartości widocznej dla tego pola we wszystkich wklejonych rekordach — nie tylko pierwszej. Pole ze zmieszanymi typami (liczba w jednym rekordzie, ciąg w innym) powraca do kolumny tekstowej, ponieważ jest to jedyny typ, który bezpiecznie może przechowywać oba.
Co się stanie z polem o nazwie "id"?
Kolumna nazwana id (po konwersji na snake_case, jeśli jest włączona) staje się PRIMARY KEY. Składnia auto-increment lub identity znacznie różni się między dialektami, więc jest pomijana — dodaj ją sam, gdy wybierzesz strategię.
Jaka jest różnica między dwiema opcjami zagnieżdżonych obiektów?
"Spłaszczyć znakiem podkreślenia" zmienia zagnieżdżony obiekt taki jak address: { city } na oddzielną kolumnę address_city. "Zachować jako kolumnę JSON" przechowuje cały zagnieżdżony obiekt jako jedną kolumnę JSON (lub tekstową). Tablice są zawsze przechowywane jako jedna kolumna JSON/tekst, ponieważ jeden wiersz nie może zawierać listy o zmiennej długości.
Czy może wygenerować dane do wstawienia wraz z tabelą?
Tak. Włącz "Dodać instrukcje INSERT" i jeśli wkleisz tablicę obiektów, poniżej CREATE TABLE zostanie dodana jedna instrukcja INSERT na rekord, używając już wnioskowanych kolumn.
Czy mój JSON jest przesyłany gdziekolwiek?
Nie. Analiza, wnioskowanie typów i generowanie SQL odbywa się lokalnie w Twojej przeglądarce — Twój JSON i schemat z niego wyprowadzony nigdy nie opuszczają Twojego urządzenia.