CSV 파일을 열거나 붙여넣고 테이블 이름을 확인한 다음 SQLite 다운로드를 누르세요. 모든 행을 담은 테이블 하나가 있는 .sqlite 데이터베이스 파일을 받으며, sqlite3 셸, DB Browser for SQLite, Python 등 어떤 SQLite 라이브러리로도 바로 열 수 있습니다. 기본적으로 모든 열은 TEXT이므로 000417은 000417로 남습니다. SQLite 엔진은 브라우저에서 WebAssembly로 실행되며 CSV는 업로드되지 않습니다.
CSV를 SQLite로 변환하는 방법
.csv,.tsv,.txt파일을 열거나 도구 위에 끌어다 놓거나 행을 붙여넣으세요. 입력의 표를 확인하고, 필요하면 가져오기 설정에서 구분 기호, 머리글 행, 인코딩을 지정하세요.- 테이블 이름을 확인하세요. 처음에는 파일 이름에서 공백과 문장 부호를 밑줄로 바꾼 이름이므로
orders 2026.csv는orders_2026이 됩니다. - 값 유형, 기본 키(선택), 빈 셀을 NULL로 쓰기 여부를 고르세요.
- SQLite 다운로드를 누른 다음 파일을 여세요. 예:
sqlite3 orders.sqlite를 실행하고SELECT * FROM orders LIMIT 10;.
처음 변환할 때 SQLite 엔진(WebAssembly로 컴파일한 sql.js)을 assets.viewcsv.app에서 한 번 내려받습니다. 내려받지 못하면 오류가 표시되며 다시 시도할 수 있고, 파일은 계속 이 기기에만 있습니다.
같은 설정으로 여러 파일을 변환하려면 일괄 변환: 여러 파일 변환을 고르세요. 파일마다 그 파일 이름을 딴 테이블이 있는 데이터베이스가 하나씩 만들어지고, ZIP 하나로 함께 다운로드됩니다. 일괄 변환에서는 파일 하나가 25 MB 이하여야 합니다.
데이터베이스에 들어가는 내용
CREATE TABLE "name" (…)으로 만든 테이블 하나가 들어가며, CSV 열마다 열 하나가 원래 순서대로 있고 모든 행은 트랜잭션 하나로 삽입됩니다. 추가 인덱스, 뷰, ID 열은 없습니다.
| 테이블 이름과 열 이름 | 적힌 그대로 큰따옴표로 감싸 쓰므로 공백, 문장 부호, 예약어, 한글 같은 비라틴 이름도 쓸 수 있습니다. 쿼리할 때는 "order date"처럼 씁니다. 빈 머리글은 Column 3, 중복된 머리글은 name (2)가 됩니다. |
|---|---|
| 모든 값을 텍스트로 유지 | 기본값입니다. 모든 열을 TEXT로 선언하고 각 값을 적힌 그대로 저장합니다. |
| 숫자와 true/false 감지 | 비어 있지 않은 값이 모두 앞자리 0 없는 정수인 열은 INTEGER, 유효 숫자 15자리 이하의 소수인 열은 REAL이 됩니다. SQLite에는 불리언 유형이 없으므로 true/false 열은 1과 0을 담은 INTEGER가 됩니다. 날짜와 그 밖의 값은 TEXT로 남습니다. |
| 기본 키 | 선택 사항입니다. 고른 열을 PRIMARY KEY로 선언합니다. 값이 고유하고 비어 있지 않아야 하며, 그렇지 않으면 파일을 쓰기 전에 멈춥니다. 정수로 감지된 키는 SQLite의 rowid 별칭인 INTEGER PRIMARY KEY가 됩니다. |
| 빈 셀을 NULL로 쓰기 | 기본으로 켜져 있습니다. 끄면 빈 셀을 빈 문자열 ''로 저장합니다. |
따옴표로 감싼 CSV 값 안의 줄 바꿈, 따옴표, 쉼표는 값 안에 그대로 저장됩니다.
CSV를 SQLite로 바꿀 때 흔한 문제
- 기본 키에서 변환이 멈춥니다. 고른 열에 빈 값이나 반복된 값이 있습니다. CSV 검사나 CSV 뷰어로 중복을 찾거나, 다른 열을 고르거나, 기본 키를 없음으로 정하세요.
- 엔진을 내려받지 못했습니다. SQLite WebAssembly 파일은
assets.viewcsv.app에서 받습니다. 인터넷 연결, 방화벽, 콘텐츠 차단 프로그램을 확인한 뒤 다시 시도하세요. - `SUM()`이 열을 텍스트로 취급합니다. 그 열이
TEXT입니다. 숫자와 true/false 감지로 다시 변환하세요. 그래도 텍스트로 남는다면 일반 숫자가 아닌 값(1,234,12 kg,007)이 있는 것입니다. SQL에서CAST(total AS REAL)로 변환해도 됩니다. - 파일이 이 도구에서 다루기에 너무 큽니다. SQLite 변환은 25 MB, 10만 행, 250열, 200만 셀까지의 파일에서 동작합니다. 더 큰 파일은 대용량 파일을 스트리밍으로 처리하는 CSV를 SQL로에서 스크립트를 만들어
sqlite3로 실행하세요.
한도와 개인정보 보호
CSV는 브라우저 작업 공간에서 열 수 있어야 합니다. 25 MB, 10만 행, 250열, 200만 셀까지입니다. 데이터베이스는 메모리 안에서 만들어 파일 하나로 내보냅니다.
엔진은 이 탭의 백그라운드 워커에서 실행되므로 페이지가 멈추지 않고, 취소로 중단할 수 있습니다. 내려받는 것은 엔진 파일뿐이며, CSV와 데이터베이스는 기기 밖으로 나가지 않습니다.
예시: 주문 파일을 sqlite3 셸에서 열기
앞자리 0이 있는 ID, 빈 날짜, 두 줄짜리 메모가 있는 주문 파일을 숫자와 true/false 감지, 테이블 이름 orders, 기본 키 order_id로 변환한 뒤 sqlite3 셸로 연 결과입니다. total은 REAL, paid는 1/0을 담은 INTEGER가 되었고, order_id와 shipped_on은 TEXT로 남았습니다. 기본값인 모든 값을 텍스트로 유지를 쓰면 여섯 열이 모두 TEXT이고 total은 129.50을 유지합니다.
order_id,customer,total,paid,shipped_on,note 000417,"Okafor, Ada",129.50,true,2026-04-02, 000418,Mei Tan,15,false,,"Leave at door side gate"
sqlite> .schema
CREATE TABLE "orders" ("order_id" TEXT PRIMARY KEY, "customer" TEXT, "total" REAL, "paid" INTEGER, "shipped_on" TEXT, "note" TEXT);
sqlite> SELECT order_id, total, typeof(total), paid, shipped_on, quote(note) FROM orders;
000417|129.5|real|1|2026-04-02|NULL
000418|15.0|real|0||'Leave at door
side gate'자주 묻는 질문
CSV를 SQL로 변환과 무엇이 다른가요?
이 페이지는 바로 열 수 있는 완성된 SQLite 데이터베이스 파일을 줍니다. CSV를 SQL로는 CREATE TABLE과 INSERT 문으로 된 텍스트 스크립트를 만들어 직접 실행하게 하며, SQLite뿐 아니라 PostgreSQL, MySQL, SQL Server용으로도 쓸 수 있고 25 MB보다 큰 파일도 스트리밍으로 처리합니다.
기존 데이터베이스에 CSV를 추가할 수 있나요?
직접은 안 됩니다. 변환할 때마다 테이블 하나가 있는 새 데이터베이스가 만들어집니다. 기존 데이터베이스에서 ATTACH 'orders.sqlite' AS src;로 연결하고 INSERT INTO … SELECT * FROM src.orders;로 행을 복사하세요.
true와 false가 1과 0으로 저장되는 이유는 무엇인가요?
SQLite에는 불리언 저장 클래스가 없고 불리언은 정수로 다룹니다. 숫자와 true/false 감지를 쓰면 true는 1, false는 0이 됩니다. 텍스트 모드에서는 문자열 true와 false로 남습니다.