JSON을 SQL로 변환
JSON 배열을 SQL INSERT 문으로 바꾸고, 필요하면 CREATE TABLE DDL까지 함께 생성할 수 있는 무료 온라인 도구입니다.
관련 추천
JSON에서 SQL로 변환한다는 것
JSON에서 SQL로 변환한다는 것은 JSON 배열이나 객체를 관계형 데이터베이스에서 실행할 수 있는 INSERT와 CREATE TABLE 스크립트로 바꾸는 일입니다.
이 도구는 객체의 key를 컬럼명으로, value를 SQL 리터럴로 바꾸고 필요할 때 DDL까지 함께 생성합니다.
타입 추론, 방언별 구문 차이, 배치 INSERT를 모두 브라우저에서 처리하므로 수작업보다 빠르고 안전합니다.
사용 사례
- API 응답 JSON을 관계형 데이터베이스에 넣기 위한 INSERT 문으로 바꾸고 싶을 때.
- 프론트엔드 Mock 데이터로 개발/테스트용 SQL 시드 데이터를 만들 때.
- JSON 샘플로 CREATE TABLE을 생성해 새 프로젝트 DB를 초기화할 때.
- 로그나 문서형 저장소의 JSON을 SQL 대상 시스템으로 옮길 때.
- JSON과 SQL 타입 매핑을 교육이나 데모로 보여주고 싶을 때.
이용 방법
- 왼쪽 입력창에 JSON 배열 또는 객체를 붙여 넣거나 .json/.txt 파일을 불러옵니다.
- 툴바에서 대상 SQL 방언을 선택합니다.
- 설정에서 테이블명, CREATE TABLE 포함 여부, 배치 크기를 조정합니다.
- 변환을 실행하면 오른쪽 패널에 SQL과 행/열 수가 표시됩니다.
- 복사하거나 .sql 파일로 다운로드해 DB 클라이언트에서 실행합니다.
주요 기능
- JSON 배열에서 INSERT INTO 문을 생성하고 1~1000행 배치 삽입을 지원합니다.
- 선택적으로 CREATE TABLE DDL을 생성하며 컬럼 타입을 자동 추론합니다.
- MySQL, PostgreSQL, SQLite, SQL Server 등 20개 이상의 SQL 방언을 지원합니다.
- NULL, 불리언, 정수, 실수, ISO 날짜, 짧은/긴 문자열을 구분하는 스마트 타입 추론을 제공합니다.
- sql-formatter로 생성된 SQL을 읽기 좋게 정리합니다.
- 모든 변환은 브라우저 로컬에서 처리되어 업로드가 필요 없습니다.
자주 묻는 질문
JSON 배열을 SQL INSERT로 바꾸려면 어떻게 하나요?
JSON 배열을 붙여 넣으면 각 객체의 key는 컬럼명, value는 값으로 변환되어 INSERT 문이 자동 생성됩니다.
CREATE TABLE도 자동 생성할 수 있나요?
네. 설정에서 CREATE TABLE 생성을 켜면 값 형태를 분석해 적절한 SQL 타입으로 DDL을 만듭니다.
어떤 데이터베이스 방언을 지원하나요?
MySQL, PostgreSQL, SQLite, SQL Server를 포함한 20개 이상의 주요 방언을 지원하며 식별자 인용 방식과 타입명을 자동으로 맞춥니다.
타입 추론은 어떻게 동작하나요?
정수, 부동소수, 불리언, NULL, ISO 날짜 문자열, 짧은/긴 문자열을 구분해 SQL 타입으로 매핑합니다.
대량 INSERT도 가능한가요?
가능합니다. 1~1000행 단위의 배치 크기를 지정해 여러 행을 한 INSERT 문에 묶을 수 있습니다.
JSON 문법이 깨져 있으면 어떻게 되나요?
후행 쉼표나 따옴표 누락 같은 흔한 오류는 자동 수정이 시도됩니다. 복잡한 경우에는 먼저 JSON 포맷터로 점검하세요.
데이터가 서버로 업로드되나요?
아니요. JSON 파싱, 타입 추론, SQL 생성은 모두 브라우저 JavaScript에서 실행됩니다.
날짜 문자열을 자동으로 인식하나요?
ISO 8601 형식의 날짜와 날짜-시간 문자열은 DATE 또는 TIMESTAMP로 자동 감지됩니다.
문제 해결
"No valid objects found in JSON"만 표시돼요
최상위가 배열/객체가 아니거나, 배열 안에 숫자/문자열만 있어 컬럼을 만들 수 없는 경우입니다.
생성된 SQL이 DB에서 문법 오류를 냅니다
방언 선택이 틀렸거나 예약어 충돌, 너무 큰 배치 크기 때문일 수 있습니다.
날짜가 DATE/TIMESTAMP가 아니라 VARCHAR로 잡혀요
입력 문자열이 ISO 8601 형식이 아니면 일반 문자열로 처리됩니다.
같은 컬럼에 숫자와 문자열이 섞여 있어요
타입 충돌이 나면 더 넓은 타입(예: VARCHAR)으로 자동 승격됩니다.
용어집
- JSON
- API와 설정 파일에서 널리 쓰이는 경량 데이터 교환 형식입니다.
- SQL
- 관계형 데이터베이스를 다루는 표준 질의 언어입니다.
- INSERT 문
- 테이블에 데이터를 추가하는 DML 문입니다.
- CREATE TABLE 문
- 테이블 이름, 컬럼, 타입을 정의하는 DDL 문입니다.
- SQL 방언
- 데이터베이스 제품마다 다른 문법과 타입 체계입니다.
- 타입 추론
- JSON 값을 보고 SQL 타입을 자동 판단하는 과정입니다.
- 배치 삽입
- 여러 행을 한 INSERT로 묶어 성능을 높이는 방식입니다.
지원 SQL 방언과 주요 차이
주요 방언별 식별자 인용 방식, 정수 타입, 불리언 표현 차이입니다.
| 방언 | 식별자 인용 | 정수 타입 | 불리언 | IF NOT EXISTS |
|---|---|---|---|---|
| MySQL | 백틱 ` | INT | TRUE | 지원 |
| PostgreSQL | 큰따옴표 " | INTEGER | TRUE | 지원 |
| SQLite | 큰따옴표 " | INTEGER | 1/0 | 지원 |
| SQL Server | 대괄호 [] | INT | 1/0 | 미지원 |
| BigQuery | 백틱 ` | INT64 | TRUE | 지원 |
| Snowflake | 큰따옴표 " | NUMBER | TRUE | 지원 |
JSON 값에서 SQL 타입으로의 추론 규칙
detectType 함수가 사용하는 대표적인 규칙입니다.
| JSON 값 | 예시 | 추론 SQL 타입 | 판단 규칙 |
|---|---|---|---|
null | null | NULL | JSON null은 SQL NULL로 매핑됩니다. |
boolean | true / false | BOOLEAN | BOOLEAN 또는 1/0으로 표현됩니다. |
integer | 1, 100, -9999 | INT / BIGINT | 값 범위에 따라 INT / BIGINT를 선택합니다. |
float | 3.14, -0.5 | FLOAT / DOUBLE / REAL | 방언에 맞는 부동소수 타입을 사용합니다. |
ISO 8601 datetime | 2024-05-20T10:30:00 | TIMESTAMP | ISO 8601 날짜시간은 TIMESTAMP로 인식합니다. |
short / long string | Alice / 500 chars | VARCHAR / TEXT | 255자 이하는 VARCHAR, 초과는 TEXT를 사용합니다. |
Privacy & Security
이 JSON to SQL 변환기는 완전히 브라우저 안에서 동작합니다. JSON 파싱, 타입 추론, SQL 생성, 정렬은 모두 클라이언트 측에서 수행되며 입력 데이터가 어떤 서버로도 전송되지 않습니다.
Authoritative References
- JSON 압축
- CSV 를 JSON으로
- JSON을 CSV로
- JSON Diff
- JSON Escape / Unescape
- JSON 평탄화
- JSON 포맷터
- JSON 생성기
- JSONPath 온라인 쿼리
- JSON 병합
- JSON 복구
- JSON 스키마 검증기
- JSON 정렬
- JSON Stringify
- JSON을 HTML로 변환
- JSON을 Java로
- JSON을 Markdown으로
- JSON을 SQL로 변환
- JSON을 TOML로 변환
- JSON을 TypeScript로 변환
- XML을 JSON으로
- JSON을 XML로 변환
- YAML을 JSON으로 변환
- JSON → YAML 변환
- JSON을 Go로
- JSON을 Rust로
- JSON → Swift
- JSON에서 C#로
- JSON을 C++로
- JSON을 PHP로
- JSON을 Python으로