이 도구는
스프레드시트 데이터를 데이터베이스에 넣으려면 보통 테이블 정의와 긴 INSERT 문 목록을 직접 쓰면서 작은따옴표를 하나하나 이스케이프해야 합니다. 이 도구가 그 일을 대신합니다. CSV를 붙여 넣으면 CREATE TABLE 문과 배치로 묶인 여러 행 INSERT 문으로 이루어진, 바로 실행할 수 있는 SQL 스크립트를 얻을 수 있습니다.
RFC 4180에 따라 따옴표로 감싼 필드, 셀 안의 쉼표와 줄바꿈, 두 번 쓴 따옴표를 처리합니다. 문자열은 선택한 데이터베이스에 맞게 이스케이프되며, MySQL의 백슬래시와 SQL Server의 N'…' 유니코드 문자열도 지원합니다.
사용 방법
- CSV를 붙여 넣거나,
.csv또는.tsv파일을 업로드하거나, 예시 를 누릅니다. - 테이블 이름 을 입력합니다. 스키마가 필요하면
public.orders나dbo.orders처럼 점으로 구분합니다. - 데이터베이스 를 고릅니다: MySQL / MariaDB, PostgreSQL, SQLite, SQL Server.
- INSERT당 행 수 를 고르고, 테이블이 이미 있다면 CREATE TABLE 을 끕니다.
- SQL을 복사하거나
.sql파일로 내려받아 데이터베이스 클라이언트에서 실행합니다.
구분자는 자동으로 감지되며, 쉼표, 세미콜론, 탭, 파이프를 직접 지정할 수도 있습니다. 첫 행이 열 이름이 아니라 데이터라면 첫 행은 헤더 를 끄세요. 열 이름은 column_1, column_2 등이 됩니다.
예시
다음 CSV는:
id,name,price,in_stock
1,Ada's Tea,4.50,true
2,Coffee,,false
PostgreSQL용으로 다음 스크립트가 됩니다:
CREATE TABLE "products" (
"id" INTEGER,
"name" TEXT,
"price" NUMERIC(3, 2),
"in_stock" BOOLEAN
);
INSERT INTO "products" ("id", "name", "price", "in_stock") VALUES
(1, 'Ada''s Tea', 4.50, TRUE),
(2, 'Coffee', NULL, FALSE);
Ada's의 작은따옴표는 두 번 쓰이고, 빈 가격은 NULL이 되며, 숫자와 불리언은 따옴표 없이 쓰입니다.
타입과 방언
- MySQL / MariaDB: 백틱 식별자,
INT,DECIMAL,BOOLEAN,DATE,DATETIME,VARCHAR(255)또는TEXT. 문자열의 백슬래시는 이스케이프됩니다. - PostgreSQL: 큰따옴표 식별자,
INTEGER,NUMERIC,BOOLEAN,DATE,TIMESTAMP,TEXT. - SQLite: 큰따옴표 식별자와 SQLite 저장 클래스
INTEGER,REAL,TEXT. 불리언은 1과 0으로 씁니다. - SQL Server: 대괄호 식별자,
INT,DECIMAL,BIT,DATE,DATETIME2,NVARCHAR. 문자열은N'…'형식이고 INSERT당 최대 1000행입니다. - 빈 셀은
NULL이 됩니다. 빈 셀을 NULL로 를 끄면 텍스트 열에는 빈 문자열이 남습니다. - 운영 데이터에 실행하기 전에 추론된 타입을 확인하세요. 예시 데이터에 작은 숫자만 있던 열은 나중에 더 넓은 타입이 필요할 수 있습니다.
자주 묻는 질문
› 어떤 데이터베이스를 지원하나요?
MySQL(및 MariaDB), PostgreSQL, SQLite, Microsoft SQL Server입니다. 선택한 데이터베이스에 따라 테이블과 열 이름을 감싸는 방식, 문자열 이스케이프, 사용할 열 타입, 불리언 표기가 달라집니다.
› 열 타입은 어떻게 정해지나요?
각 열을 살펴서 정수는 INT 또는 BIGINT, 소수는 정밀도가 충분한 DECIMAL, true/false는 BOOLEAN(SQL Server는 BIT), ISO 날짜는 DATE 또는 DATETIME, 나머지는 텍스트 타입이 됩니다. 우편번호처럼 앞에 0이 붙은 숫자는 텍스트로 남습니다. 타입 감지를 끄면 모든 열이 텍스트가 됩니다.
› SQL Server는 왜 INSERT당 1000행으로 제한되나요?
SQL Server는 1000행이 넘는 VALUES 목록을 거부하므로, 이 방언에서는 더 큰 배치 크기가 1000으로 제한됩니다. 다른 데이터베이스는 더 큰 배치도 받아들이지만, 문장당 100~1000행이 속도와 문장 길이 사이에서 균형이 좋습니다.
› CSV가 업로드되나요?
아니요. 파싱과 SQL 생성은 모두 브라우저에서 이루어지므로 데이터가 기기 밖으로 나가지 않습니다.