CSV → SQL INSERT 생성기
CSV 데이터를 SQL INSERT 문으로 변환합니다. 자동 감지 컬럼 타입으로 CREATE TABLE DDL도 생성합니다.
이 도구 소개
CSV to SQL INSERT 생성기는 스프레드시트 데이터를 실행 가능한 SQL INSERT 문으로 변환하는 브라우저 기반 도구입니다. 이 유틸리티는 CSV 파일에서 SQL 데이터베이스로 데이터를 마이그레이션하고, 테스트 데이터베이스를 빠르게 채우거나, 모든 SQL 데이터베이스 시스템에 대해 직접 실행할 수 있는 형식으로 데이터를 공유해야 하는 개발자와 데이터베이스 관리자에게 필수적입니다.
이 도구를 사용하려면 CSV 데이터를 붙여넣거나 업로드하면 자동으로 열 헤더와 데이터 유형이 감지됩니다. 그런 다음 기존 테이블의 일반 INSERT 문을 생성하거나 추론된 열 정의가 있는 CREATE TABLE 문을 포함시킬 수 있습니다. 이 도구는 테이블 이름 지정, NULL 값 처리, 다양한 SQL 방언 또는 인용 스타일 선택 등 사용자 정의 옵션을 지원합니다.
이 도구는 따옴표로 묶인 필드의 쉼표, 셀 내의 줄바꿈, 특수 문자 등의 엣지 케이스를 우아하게 처리합니다. 일회성 데이터 가져오기, 개발 데이터베이스 시딩 또는 명령줄 도구나 데이터베이스 클라이언트 소프트웨어를 필요로 하지 않는 백업 및 복원 워크플로우를 위한 데이터 세트 준비에 특히 유용합니다.
자주 묻는 질문
코드 구현
import csv
import io
def csv_to_sql(csv_text, table_name="my_table", include_create=True):
reader = csv.reader(io.StringIO(csv_text.strip()))
rows = list(reader)
if len(rows) < 2:
return ""
headers = rows[0]
data_rows = rows[1:]
def infer_type(values):
for v in values:
v = v.strip()
if v == "":
continue
try:
int(v)
return "INT"
except ValueError:
try:
float(v)
return "FLOAT"
except ValueError:
return "VARCHAR(255)"
return "VARCHAR(255)"
types = [infer_type([r[i] for r in data_rows if i < len(r)])
for i in range(len(headers))]
sql = []
if include_create:
cols = ", ".join(f"{h} {t}" for h, t in zip(headers, types))
sql.append(f"CREATE TABLE {table_name} ({cols});")
for row in data_rows:
values = []
for i, val in enumerate(row):
if types[i] == "VARCHAR(255)":
values.append(f"'{val.replace(chr(39), chr(39)*2)}'")
else:
values.append(val if val.strip() else "NULL")
cols_str = ", ".join(headers)
vals_str = ", ".join(values)
sql.append(f"INSERT INTO {table_name} ({cols_str}) VALUES ({vals_str});")
return "\n".join(sql)
csv_data = """id,name,score
1,Alice,95.5
2,Bob,87"""
print(csv_to_sql(csv_data))Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.