UTILS.
100% 브라우저 내 실행
🗄

JSON을 SQL CREATE TABLE로 변환

객체로 이루어진 JSON 배열에서 SQL CREATE TABLE(및 선택적 INSERT)을 추론하고, MySQL, PostgreSQL, SQLite에 맞게 컬럼 타입을 자동으로 선택합니다.

— 여기에 결과가 표시됩니다 —

이 도구에 대하여

JSON을 SQL CREATE TABLE로 변환 도구는 객체로 이루어진 JSON 배열(또는 단일 객체)을 읽어 일치하는 SQL 테이블 정의를 추론하며, 실제로 관찰된 값에서 각 컬럼의 타입을 선택합니다. 모든 작업은 브라우저에서 실행됩니다. JSON은 네이티브 JSON.parse로 파싱되며 기기를 떠나지 않으므로, API 덤프나 데이터베이스 익스포트를 붙여넣어 한 단계로 테이블을 스캐폴딩할 수 있습니다.

컬럼 타입은 모든 행에 걸쳐 필드별로 추론됩니다. 모두 정수인 값은 INT(값이 2,147,483,647을 초과하면 BIGINT)가 되고, 소수가 있는 숫자는 입력한 가장 넓은 정수부와 소수부 자릿수에 맞춘 DECIMAL(p,s)(또는 float 모드를 선택하면 DOUBLE / REAL)가 되며, 불리언은 TINYINT(1)/BOOLEAN, ISO 8601 문자열은 DATETIME이나 DATE, 중첩 객체와 배열은 JSON/JSONB, 나머지 문자열은 가장 긴 값보다 큰 다음 2의 거듭제곱을 N으로 하는 VARCHAR(N)(N이 255를 넘으면 TEXT)가 됩니다. 어떤 행에서든 null이거나 누락된 컬럼은 NULLABLE로 남고, 그렇지 않으면 NOT NULL입니다. id나 uuid로 이름 붙은 고유하고 null이 아닌 컬럼은 PRIMARY KEY로 승격되며, 정수 키에는 AUTO_INCREMENT / SERIAL / AUTOINCREMENT가 추가됩니다.

방언 토글은 타입을 MySQL, PostgreSQL(SERIAL, JSONB, TIMESTAMP, DOUBLE PRECISION), 또는 SQLite(INTEGER / REAL / TEXT 친화도)에 맞게 다시 작성하고 올바른 구분자(MySQL은 백틱, 그 외에는 큰따옴표)로 식별자를 인용합니다. INSERT 옵션을 켜면 행마다 INSERT 문 하나씩도 출력되며, 문자열, 불리언, 숫자, JSON 값이 선택한 방언에 맞게 이스케이프되고 인용됩니다.

자주 묻는 질문

어떤 입력을 기대하나요?
API나 익스포트의 행 같은 평면 객체로 이루어진 JSON 배열, 또는 한 행짜리 테이블로 취급되는 단일 JSON 객체입니다. 행 전체의 모든 키가 합쳐져 컬럼을 이루며, 객체가 아닌 요소는 거부됩니다.
컬럼 타입은 어떻게 선택되나요?
컬럼별로 관찰된 모든 값에서 정해집니다. 모두 정수는 INT/BIGINT, 소수는 DECIMAL(p,s)나 DOUBLE, 불리언은 TINYINT(1)/BOOLEAN, ISO 날짜-시간은 DATETIME/DATE, 객체/배열은 JSON, 그 외 문자열은 VARCHAR(N)(255자 초과 시 TEXT)입니다.
어떤 SQL 방언이 지원되나요?
MySQL, PostgreSQL, SQLite입니다. 방언 토글은 타입 이름(Postgres는 SERIAL, JSONB, TIMESTAMP, SQLite는 INTEGER/REAL/TEXT 친화도)을 다시 작성하고 올바른 식별자 인용과 자동 증가 구문을 사용합니다.
기본 키는 어떻게 결정되나요?
id나 uuid로 이름 붙은 컬럼이 모든 행에서 존재하고 null이 아니며 고유한 값을 가지면 PRIMARY KEY로 표시됩니다. 정수 키에는 AUTO_INCREMENT(MySQL), SERIAL(PostgreSQL), 또는 AUTOINCREMENT(SQLite)도 붙습니다.

더 많은 도구