CSV → SQL INSERT
브라우저 처리CSV를 데이터베이스용 INSERT 문으로 바꿉니다. 빈칸은 NULL, 작은따옴표는 두 번 써서 처리하고, MySQL·PostgreSQL·SQLite·SQL Server에 맞는 이름 따옴표와 여러 행 묶기를 고를 수 있습니다.
- 파일·이미지·문서 처리 도구는 브라우저 안에서 처리되더라도 원본에 개인정보나 민감 정보가 포함될 수 있습니다. 공유·제출 전 원본과 결과를 한 번 더 확인하세요.
엑셀이나 CSV로 받은 데이터를 데이터베이스 테이블에 넣는 INSERT 문을 만들어 주는 도구입니다. 두 번째 칸에 테이블 이름을 적으면 첫 줄의 열 이름이 컬럼 목록이 되고, 각 행이 VALUES 한 묶음이 됩니다.
INSERT INTO "customers" ("id", "name", "zip") VALUES
(1, 'O''Brien', '04524'),
(2, '김하나', NULL);
CSV → SQL INSERT 사용 가이드
엑셀이나 CSV로 받은 데이터를 데이터베이스 테이블에 넣는 INSERT 문을 만들어 주는 도구입니다. 두 번째 칸에 테이블 이름을 적으면 첫 줄의 열 이름이 컬럼 목록이 되고, 각 행이 VALUES 한 묶음이 됩니다.
빈칸은 NULL로, 숫자는 따옴표 없이, 나머지는 작은따옴표로 감싸고 O'Brien의 따옴표는 ''로 두 번 써서 SQL 문법이 깨지지 않게 합니다. 04524 같은 우편번호나 15자리를 넘는 긴 숫자는 앞자리 0이나 정밀도가 사라지지 않도록 문자열로 남깁니다.
'customers; dialect=mysql'처럼 데이터베이스를 지정하면 MySQL·MariaDB는 `백틱`, SQL Server는 [대괄호], PostgreSQL·SQLite는 "큰따옴표"로 이름을 감싸고, MySQL에서는 역슬래시도 이스케이프합니다. batch=100을 더하면 행 100개를 INSERT 문 하나로 묶습니다.
사용 방법
- 'CSV' 칸에 넣을 데이터를 붙여 넣습니다. 첫 줄이 컬럼 이름이 됩니다.
- '테이블 이름' 칸에 customers처럼 적고, 필요하면 '; dialect=mysql; batch=100'을 덧붙입니다.
- '실행'을 눌러 INSERT 문을 확인하고 .sql 파일로 받아 데이터베이스 도구에서 실행합니다.
예시: PostgreSQL용 묶음 INSERT
id,name,zip 1,O'Brien,04524 2,김하나, --- customers; dialect=postgres; batch=100
INSERT INTO "customers" ("id", "name", "zip") VALUES
(1, 'O''Brien', '04524'),
(2, '김하나', NULL);우편번호 04524는 앞의 0을 지키려고 문자열로, 비어 있는 우편번호는 NULL로 들어갔습니다.
이럴 때 쓰면 좋아요
- 엑셀로 정리한 초기 데이터를 개발용 데이터베이스에 넣을 때
- 테스트용 시드 데이터를 SQL 파일로 만들어 저장소에 함께 둘 때
- 관리 화면이 없는 테이블에 몇십 건의 데이터를 한 번에 넣을 때
- 다른 시스템에서 내보낸 CSV를 데이터베이스 마이그레이션 스크립트로 바꿀 때
문제가 생겼을 때
MySQL은 기본 설정에서 큰따옴표를 이름으로 인식하지 않습니다. 테이블 이름 뒤에 '; dialect=mysql'을 붙여 백틱으로 감싸세요.
true와 false는 'true' 문자열로 들어갑니다. PostgreSQL은 그대로 받지만 MySQL의 TINYINT(1) 컬럼이라면 CSV에서 1과 0으로 바꿔 두세요.
활용 팁
- 열 이름에 공백이나 한글이 있어도 따옴표로 감싸므로 문법은 맞지만, CSV 헤더 정규화기로 먼저 정리하면 이후 쿼리를 쓰기 편합니다.
- shop.items처럼 스키마를 붙인 테이블 이름도 점을 기준으로 나눠 각각 따옴표를 씌웁니다.
자주 묻는 질문
INSERT 문만 만듭니다. 테이블은 컬럼 타입을 정해 먼저 만들어 두어야 하며, 컬럼 이름은 CSV 첫 줄과 같아야 합니다.
1부터 1,000까지입니다. 너무 큰 묶음은 데이터베이스의 쿼리 길이 제한에 걸릴 수 있어 100~500 정도가 무난합니다.
dialect에는 mysql, mariadb, postgres, sqlite, sqlserver만 쓸 수 있습니다. Oracle은 큰따옴표로 감싼 이름의 대소문자를 구분하므로, 대문자로 만든 테이블이라면 CSV 열 이름도 대문자로 맞춘 뒤 batch=1로 만드세요.