본문으로 건너뛰기
🛠️ToolsShed

SQL INSERT 생성기

표 형식 데이터 입력으로 SQL INSERT 문을 생성합니다.

따옴표 스타일:
SQL 출력

이 도구 소개

SQL INSERT 생성기는 표 형식의 데이터를 실행 가능한 SQL INSERT 문으로 변환하는 개발자 도구입니다. 스프레드시트에서 데이터를 마이그레이션하거나, 테스트 픽스처를 만들거나, 데이터베이스에 초기값을 입력할 때 INSERT 구문을 손으로 작성하는 번거로운 작업을 제거합니다. 이 도구는 데이터 구조를 읽고 MySQL, PostgreSQL, SQLite, SQL Server 등 대부분의 관계형 데이터베이스에서 작동하는 구문적으로 올바른 SQL을 생성합니다.

도구를 사용하려면 표 형식의 데이터(스프레드시트, CSV 파일 또는 텍스트 테이블에서)를 입력 영역에 붙여넣고 대상 데이터베이스 유형을 선택합니다. 생성기는 자동으로 열을 감지하고, 데이터 타입을 추론하며, 특수 문자와 이스케이프를 처리하고, 데이터베이스 클라이언트에 직접 붙여넣을 수 있는 깔끔한 SQL 코드를 생성합니다. 실행 전에 테이블 이름을 사용자 정의하고 생성된 문을 조정할 수 있습니다.

이 도구는 테스트 환경을 설정하는 개발자, 새 인스턴스를 부트스트랩하는 데이터베이스 관리자, 대량 가져오기를 준비하는 데이터 엔지니어에게 특히 유용합니다. NULL 값, 문자열 이스케이프, 날짜 형식 등 일반적인 엣지 케이스를 처리하여 시간을 절약하고 가져오기 작업을 중단할 수 있는 구문 오류를 줄입니다.

자주 묻는 질문

코드 구현

# Generate SQL INSERT statements from a list of dicts
def generate_inserts(table, rows, batch=False):
    if not rows:
        return ""
    columns = ", ".join(rows[0].keys())
    def fmt(v):
        if isinstance(v, (int, float)):
            return str(v)
        return f"'{str(v).replace(chr(39), chr(39)+chr(39))}'"

    if batch:
        values = ",\n  ".join(
            "(" + ", ".join(fmt(v) for v in row.values()) + ")"
            for row in rows
        )
        return f"INSERT INTO {table} ({columns})\nVALUES\n  {values};"
    else:
        return "\n".join(
            f"INSERT INTO {table} ({columns}) VALUES ({', '.join(fmt(v) for v in row.values())});"
            for row in rows
        )

rows = [
    {"id": 1, "name": "Alice", "email": "alice@example.com"},
    {"id": 2, "name": "Bob",   "email": "bob@example.com"},
]
print(generate_inserts("users", rows, batch=True))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.