본문으로 건너뛰기
AZ Tools

CSV → SQL INSERT 생성기

CSV·TSV 행을 SQL INSERT 문으로 변환 — 테이블명·방언별 식별자·타입 추론·다중 행 모드.

SQL
INSERT INTO "users" ("id", "name", "role", "joined", "score", "active") VALUES (1, 'Alice', 'Engineer', '2024-01-15', 87.5, TRUE);
INSERT INTO "users" ("id", "name", "role", "joined", "score", "active") VALUES (2, 'Bob', 'Designer', '2023-08-22', 92.0, TRUE);
INSERT INTO "users" ("id", "name", "role", "joined", "score", "active") VALUES (3, 'Carol', 'PM', '2025-03-04', 79.3, FALSE);

사용법

  1. CSV·TSV·파이프·세미콜론 데이터를 붙여넣으세요.
  2. 테이블명과 SQL 방언을 설정하세요.
  3. 필요에 따라 다중 행 INSERT·타입 추론을 토글하세요.
  4. SQL을 마이그레이션·시드 파일에 복사하세요.

자세한 설명

펼치기

CSV 내보내기를 실행 가능한 INSERT 문으로 바꿉니다. 대상 테이블, SQL 방언, 그리고 여러 행을 한 문장에 담을지 행마다 한 문장으로 낼지 고를 수 있습니다. 식별자 인용은 고른 방언을 따릅니다. 백틱, 큰따옴표, 대괄호 중 하나인데, 한 데이터베이스용으로 만든 스크립트가 다른 데이터베이스에서 문법 오류를 내는 이유가 바로 이것입니다. 문자열 값은 작은따옴표를 두 번 겹쳐 이스케이프하므로, 성에 들어 있는 아포스트로피가 문자열을 뜻하지 않게 끝내지 않고 안전하게 처리됩니다. 빈 셀이나 null이라는 낱말은 빈 문자열이 아니라 SQL NULL이 되고, 타입 추론을 켜면 정수·소수·true·false가 따옴표 없이 쓰여 텍스트가 아니라 값으로 숫자 열과 불리언 열에 들어갑니다.

자주 묻는 질문

다중 행 INSERT란?

행마다 INSERT 문을 하나씩 만드는 대신, 모든 VALUES 튜플을 단일 INSERT로 묶습니다. 대량 적재에 훨씬 빠르지만 가독성은 떨어집니다.

타입 추론은 어떻게 동작하나요?

정수(123)·실수(1.5)·TRUE/FALSE·NULL은 따옴표 없이 그대로. 나머지는 문자열로 취급해 작은따옴표로 감싸고 적절히 이스케이프. 우편번호 02134나 전화번호처럼 0으로 시작하는 숫자는 앞자리 0이 사라지지 않도록 문자열로 따옴표 처리.

SQL 인젝션 위험이 없나요?

문자열 안 작은따옴표는 두 번('it''s safe')으로 처리 — 표준 SQL 이스케이프. 단 신뢰할 수 없는 데이터엔 의존하지 마세요. 프로덕션 코드는 파라미터라이즈드 쿼리를 — 이 도구는 시드/마이그레이션 용도. MySQL은 기본 모드에서 문자열 안 백슬래시(\)를 이스케이프 문자로 해석하므로 백슬래시도 두 번으로 처리.

왜 방언마다 식별자 인용이 달라요?

MySQL은 백틱(col), PostgreSQL·SQLite은 큰따옴표("col"), 표준 SQL(SQL-92)도 큰따옴표. 도구가 자동으로 골라 대상 DB에서 실행되도록 합니다.

이 주제의 가이드

관련 도구