본문으로 건너뛰기

CSV SQL 변환

CSV to SQL

표에서 열 유형을 추론해 선택한 방언의 CREATE TABLE과 INSERT 문을 만듭니다.

표를 PostgreSQL, MySQL, SQLite, SQL Server용 CREATE TABLE과 INSERT 문으로 바꿉니다. 열의 자료형은 값에서 추론합니다. 문장을 만들기 전에 열이 어떻게 만들어질지 먼저 보여 주는데, 숫자여야 할 열이 글자로 들어온 것을 그 자리에서 잡을 수 있습니다.

🔒 브라우저 안에서만 처리sqlcsvconvertdatabase

SQL로 바꿀 CSV를 놓으세요

이 탭에서 읽습니다. 업로드하지 않습니다. 한글·일본어·중국어·서구권 엑셀이 저장한 파일(CP949, Shift_JIS, GBK, Windows-1252)을 알아봅니다.

사용 방법

  1. SQL 종류를 고릅니다

    따옴표 방식, 자동 증가 문법, 글자 자료형이 여기서 갈립니다. SQL Server에서는 VARCHAR 대신 NVARCHAR를 씁니다. 한글이 저장되느냐 물음표가 저장되느냐의 차이입니다.

  2. 추론한 자료형을 확인합니다

    SQL 위의 표에 열마다 식별자, 자료형, NULL 허용 여부가 나옵니다. INTEGER일 줄 알았던 열이 TEXT로 나오면 그 열에 엉뚱한 값이 하나 섞여 있다는 뜻입니다.

  3. INSERT 묶음 크기를 정합니다

    INSERT 하나에 100행 정도가 무난합니다. 행마다 하나씩 만들면 문제를 찾기는 쉽지만 실행은 훨씬 느립니다.

자주 묻는 질문

식별자를 왜 전부 따옴표로 감싸나요?

order, group, desc 같은 이름이 예약어이기 때문입니다. 필요할 때만 감싸려면 네 가지 SQL의 예약어 목록을 모두 정확히 알아야 합니다. 무조건 감싸는 쪽이 심심하지만 언제나 맞습니다.

한글 열 이름을 써도 되나요?

따옴표를 씌우면 네 가지 모두에서 됩니다. 그래도 서버가 거부한다면 ASCII 전용 옵션을 켜세요. 식별자만 바꾸고 자료는 그대로 둡니다.

자료 안의 따옴표는 어떻게 되나요?

두 번 적어 표준 방식으로 벗어나게 합니다. MySQL에서는 역슬래시도 두 번 적습니다. MySQL만 유일하게 문자열 안의 역슬래시를 탈출 문자로 보기 때문입니다. 그러지 않으면 C:\temp 가 데이터베이스에는 탭이 든 값으로 들어갑니다.

빈 칸은 NULL인가요 빈 문자열인가요?

고를 수 있고, 차이가 있습니다. SQL에서 빈 문자열은 값이고 NULL은 값이 없다는 뜻이라 비교, COUNT, 고유 인덱스에서 서로 다르게 동작합니다. 기본값은 NULL입니다.

이 도구로 이어지는 것

다음 단계

이 도구의 결과를 그대로 받을 수 있는 도구들입니다.