Ga naar inhoud
100% lokaal

JSON naar SQL CREATE TABLE

Converteer een JSON-object of een array van objecten naar een SQL CREATE TABLE-statement.

Invoer
Uitvoer

JSON naar SQL CREATE TABLE

Plak een JSON-object of een array van JSON-objecten, en deze tool bouwt een klaar-om-te-gebruiken SQL CREATE TABLE-statement ervan — pas het toe op een voorbeeld-API-respons of een geëxporteerd record en krijg een startschema in plaats van elke kolom handmatig in te typen.

Kolomtypen worden afgeleid uit de werkelijke waarden: gehele getallen worden INTEGER, getallen met een fractiegedeelte worden DECIMAL, true/false wordt BOOLEAN, tekenreeksen in de vorm 2024-01-15 of 2024-01-15T10:30:00Z worden DATE of TIMESTAMP, en alles anders wordt VARCHAR met een geschatte lengte, of TEXT boven 255 tekens. Een veld gemarkeerd met NOT NULL is in elk ingeplakte record aanwezig en nooit null; een veld met de naam id wordt de PRIMARY KEY. Kies een dialekt — ANSI SQL, MySQL, PostgreSQL, SQLite of SQL Server — om aan te sluiten bij de kleine verschillen in typenamen. Geneste objecten kunnen worden afgevlakt in voorziene kolommen (address.city wordt address_city) of als één JSON-kolom worden behouden, en "Namen naar snake_case converteren" zet camelCase JSON-sleutels om in conventionele SQL-kolomnamen.

Met meer dan één record, het inschakelen van "INSERT statements toevoegen" voegt één INSERT per record onder de CREATE TABLE toe, met dezelfde afgeleide kolommen — handig voor het seedden van een testdatabase vanuit een JSON-fixture. Inferencing kijkt altijd over elk record dat u hebt geplakt, niet alleen de eerste, dus een veld dat alleen soms aanwezig is, wordt correct als nullable gelaten in plaats van verkeerd geraden.

Alles wordt in uw browser uitgevoerd. De JSON die u plakt en het schema dat ervan is gegenereerd, worden nooit ergens geüpload — dat is belangrijk als de voorbeeldgegevens afkomstig zijn uit een productie-export. Kopieer het resultaat, download het als een .txt-bestand, of stuur de output terug naar de input om het schema verder aan te passen.

FAQ

Hoe worden kolomtypen bepaald?
Elke kolom wordt afgeleid uit alle waarden die voor dat veld in alle geplakte records zijn gezien — niet alleen de eerste. Een veld met gemengde typen (een getal in het ene record, een tekenreeks in het andere) valt terug op een tekstkolom, omdat dat het enige type is dat beide veilig kan bevatten.
Wat gebeurt er met een veld genaamd "id"?
Een kolom genaamd id (na snake_case-conversie, indien ingeschakeld) wordt de PRIMARY KEY. Auto-increment- of identity-syntaxis verschilt genoeg tussen dialecten dat het wordt weggelaten — voeg het zelf toe zodra u een strategie hebt gekozen.
Wat is het verschil tussen de twee opties voor geneste objecten?
"Afvlakken met underscore" verandert een genest object zoals address: { city } in een aparte kolom address_city. "Behouden als JSON-kolom" slaat het hele geneste object in plaats daarvan op als één JSON- (of tekst)kolom. Arrays worden altijd als één JSON/tekst-kolom opgeslagen, omdat één rij geen lijst met variabele lengte kan bevatten.
Kan het gegevens voor invoeging als de tabel genereren?
Ja. Schakel "INSERT statements toevoegen" in en, als u een array van objecten hebt geplakt, wordt één INSERT-statement per record onder de CREATE TABLE toegevoegd, met dezelfde afgeleide kolommen.
Wordt mijn JSON ergens geüpload?
Nee. Parsering, typeinferencing en SQL-generatie worden allemaal lokaal in uw browser uitgevoerd — uw JSON en het daarvan afgeleide schema verlaten uw apparaat nooit.