SQL로 CSV·엑셀 조회
파일 이름이 표 이름, 첫 줄이 열 이름이 돼요. 예시 표 두 개가 들어 있어서 바로 연습해 볼 수 있어요.
엑셀 필터로 안 되는 집계를 SQL로
CSV·엑셀 파일을 넣으면 파일 이름으로 된 표(테이블)가 생기고, 첫 줄은 열 이름이 돼요. 열 이름의 띄어쓰기·괄호 같은 기호는 밑줄(_)로 바뀌고 한글 이름은 그대로 쓸 수 있어요. 각 열은 값을 보고 정수·실수·글자 중 하나로 정해져서, 쉼표가 들어간 금액(1,200,000)도 숫자로 계산돼요. 위의 표 상자에서 표 이름과 열 이름, 종류를 확인하고 SQL을 적은 뒤 실행(또는 Ctrl+Enter)을 누르세요.
자주 쓰는 문장
SELECT 열1, 열2 FROM 표 WHERE 조건 ORDER BY 열 DESC LIMIT 10— 골라서 정렬하기SELECT 지역, SUM(금액) FROM 표 GROUP BY 지역— 그룹별 합계(피벗과 같은 일)SELECT … FROM 주문 o JOIN 제품 p ON o.제품 = p.제품— 두 파일을 같은 열로 붙이기(엑셀 VLOOKUP)substr(날짜, 1, 7)— 2026-03-15 같은 날짜에서 ‘2026-03’(월)만 꺼내기CREATE TABLE 새표 AS SELECT …— 결과를 새 표로 만들어 이어서 조회하기
어떻게 동작하나요
SQLite 데이터베이스를 웹어셈블리로 옮긴 sql.js(MIT)를 써서, 파일을 이 기기의 메모리 안에 있는 데이터베이스로 읽어 들여요. 그래서 SQLite의 문법과 함수(COUNT·SUM·AVG·MIN·MAX·ROUND·substr·strftime·CASE·창 함수 등)를 그대로 쓸 수 있고, 데이터는 서버로 나가지 않아요. 결과는 CSV(엑셀에서 한글이 깨지지 않게 BOM 포함)나 엑셀로 받고, 표 전체는 SQLite 파일로 저장해 DB Browser for SQLite 같은 프로그램에서 열 수 있어요.
한계
파일 전체를 메모리에 올리므로 기기에 따라 수십~수백 MB까지 다룰 수 있어요. 화면에는 결과 500줄까지만 보여 주고 받기에는 전부 들어가요. 날짜는 ‘2026-03-15’ 같은 글자로 저장되니 날짜 계산에는 date()·julianday() 함수를 쓰세요. 페이지를 닫으면 표는 사라져요.
참고한 자료
- SQLite 공식 문서 — SQL 문법 — 쓸 수 있는 문장과 함수
- sql.js — 웹어셈블리 SQLite (MIT)
자주 묻는 질문
표 이름에 한글이나 띄어쓰기가 있으면요?
한글은 그대로 쓸 수 있어요. 띄어쓰기와 기호는 밑줄로 바뀌어요. 숫자로 시작하는 이름은 앞에 c가 붙어요. 이름이 헷갈리면 큰따옴표로 감싸 "표 이름"처럼 써도 돼요.
숫자 열인데 글자로 잡혔어요.
열의 값 가운데 10% 넘게 숫자가 아닌 값(예: ‘없음’, ‘-’)이 있으면 글자 열이 돼요. 이때는 CAST(열 AS REAL)로 바꿔 계산하거나 원본의 값을 정리해 주세요.
여러 문장을 한 번에 실행할 수 있나요?
네. 세미콜론(;)으로 나누어 적으면 차례대로 실행하고, 결과 표가 있는 마지막 문장의 결과를 보여 줘요.
함께 쓰면 좋은 도구
- CSV 미리보기·필터 (큰 CSV를 표로 보고 검색)엑셀로 열기 힘든 큰 CSV·TSV를 표로 보고, 검색·열 필터·정렬, 걸러낸 결과만 CSV·엑셀로 저장
- 데이터 요약 통계 (열별 평균·사분위·결측치·상관계수 한눈에)CSV·엑셀을 넣으면 열마다 개수·빈칸·고유값·평균·표준편차·사분위수·이상치·분포 그림과 상관계수표
- 피벗 테이블 만들기 안내 (미리보기·요약 엑셀)데이터를 붙여 넣고 행·열·값을 고르면 요약표 미리보기와 만드는 법
- CSV 합치기 (여러 CSV·엑셀 파일 하나로)여러 CSV·엑셀 파일을 머리글 기준으로 한 표로 합치기, 원본 파일명 열·중복 제거
- JSON 정리 (보기 좋게 들여쓰기·검증·압축)JSON을 보기 좋게 들여쓰기, 오류 위치 표시, 한 줄 압축, 키 정렬, 문자열 이스케이프
- 정규식 테스트 (정규표현식 매칭 확인)패턴과 플래그로 일치하는 부분을 강조 표시, 그룹 값 표, 바꾸기 미리보기, 자주 쓰는 패턴