홈 / 업무 가이드 / SQL 실무
SQL 실무

CSV를 SQL INSERT로 바꾸기 전 확인할 5가지

DataWork Tools 편집 · 2026년 11월 3일

CSV를 INSERT 문으로 만들면 작은 데이터의 이관 과정을 눈으로 검수하기 쉽습니다. 하지만 문자열을 인용했다고 해서 데이터베이스 스키마와 호환되거나 업무적으로 정확한 데이터가 되는 것은 아닙니다. 생성과 실행을 분리하고 아래 항목을 확인하세요.

1. 대상 DB와 테이블명

PostgreSQL·SQLite는 큰따옴표, MySQL은 백틱으로 식별자를 인용합니다. 이 도구는 테이블 이름에 영문·숫자·밑줄만 허용하고 스키마 경로를 받지 않습니다. 대소문자를 구분하는 기존 테이블이라면 실제 이름과 일치하는지도 확인하세요.

2. 값 속 작은따옴표

입력: O'Brien
문자열 리터럴: 'O''Brien'

값의 작은따옴표는 두 번 반복합니다. 이 도구의 MySQL 결과에는 역슬래시 해석을 일관되게 하기 위한 NO_BACKSLASH_ESCAPES 세션 설정이 포함됩니다. 해당 설정이 다른 쿼리에 미치는 영향을 검토하고 별도 세션에서 실행하세요. PostgreSQL INSERT에서는 역슬래시가 포함된 값을 거부합니다.

3. 빈 문자열과 NULL

CSV의 빈 필드는 빈 문자열로 출력됩니다. SQL NULL로 자동 변경하지 않습니다. 숫자나 날짜 열이 빈 문자열을 받아들이지 않거나 DB 설정에 따라 예상과 다르게 변환할 수 있으므로 사전에 정제하세요.

4. 타입과 제약조건

모든 값은 문자열 리터럴입니다. 숫자 타입으로의 암시적 변환, 날짜 형식, 최대 길이, NOT NULL, UNIQUE, 외래키는 도구가 검증하지 않습니다. 운영 DB에 넣기 전에 테스트 테이블에서 대표 값과 오류 행을 확인하세요.

5. 행 수와 실행 범위

첫 행이 헤더인지 확인하고, 미리보기의 데이터 행 수를 원본과 비교하세요. 도구는 SQL을 실행하지 않고 트랜잭션 문장도 넣지 않습니다. 실행 도구에서 사용할 트랜잭션과 되돌리기 방법을 미리 결정하세요. 수만 행 이상은 DB의 CSV 가져오기 기능이 더 적합할 수 있습니다.

CSV → SQL 도구 열기 →

함께 읽기

CSV 한글이 깨질 때: UTF-8과 EUC-KR 구분하기
사번 0012가 12로 바뀌는 이유와 보존 방법
중복 제거에서 전체 행과 기준 열은 어떻게 다를까?
두 CSV 파일 비교: 추가·삭제·변경 행을 찾는 방법
VLOOKUP 없이 두 CSV 합치기: LEFT와 INNER JOIN 차이
CSV 열 순서 바꾸기·열 이름 변경·불필요한 열 삭제
JSON을 CSV로 변환할 때 빈칸·중첩 데이터·큰 숫자 확인하기
JSON 문법 오류 찾기: 따옴표·쉼표·큰 숫자 검수 방법
CSV 파일 분할과 행·열 전치: 처리 순서와 결과 검수
CSV 공백과 빈 행 정리: 지워도 되는 값부터 구분하기
CSV와 TSV 차이: 엑셀에서 복사한 표를 파일로 바꾸기
CSV를 Markdown 표로 만들기: README에 표 붙여넣는 방법
CSV 정렬에서 10이 2보다 먼저 나오는 이유: 문자열과 숫자 정렬
CSV에서 필요한 행만 추출하기: 포함·일치·빈값 필터의 차이