본문으로 건너뛰기

CSV에 SQL 질의

SQL over CSV

브라우저에서 CSV·TSV 파일에 SQL을 실행합니다. SELECT·WHERE·GROUP BY/HAVING·ORDER BY·LIMIT·CASE와 두 표 JOIN을 지원하고 문법을 페이지에 적어 두었습니다.

CSV를 놓고 SQL로 질의합니다. 설치할 것도 없고 업로드도 하지 않습니다. 파일을 둘 올리면 JOIN이 됩니다. 지원하는 문법을 화면에 그대로 적어 두었는데, "왜 안 되지"에 대한 답은 오류 메시지보다 그쪽이 빠릅니다.

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

CSV·TSV 파일을 끌어다 놓기 (여러 개 가능)

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

SQL

지원하는 문법

SELECT [DISTINCT] 열, 식 [AS 별칭], 표.* , *
FROM 표 [별칭]
[ [INNER|LEFT] JOIN 표 [별칭] ON 조건 ]      -- 두 표까지
[WHERE 조건]
[GROUP BY 식, …] [HAVING 조건]
[ORDER BY 식|별칭|번호 [ASC|DESC], …]
[LIMIT n [OFFSET m]]

조건:  = <> < <= > >=   AND OR NOT   IN (…)   LIKE '서울%'   BETWEEN a AND b   IS [NOT] NULL
식:    + - * / %   ||(문자열 잇기)   CASE WHEN … THEN … ELSE … END   CAST(x AS INTEGER|REAL|TEXT)
집계:  COUNT(*) COUNT(DISTINCT x) SUM AVG MIN MAX GROUP_CONCAT(x, ',')
함수:  UPPER LOWER LENGTH TRIM LTRIM RTRIM SUBSTR(s, 시작, 길이) LEFT RIGHT REPLACE INSTR CONCAT
       COALESCE IFNULL NULLIF IIF(조건, a, b) ROUND(x, 자리) ABS FLOOR CEIL SQRT POWER MOD TYPEOF
이름:  한글 열 이름 그대로, 띄어쓰기가 있으면 "따옴표"나 `백틱`   -- 주석, /* 주석 */

NULL은 어떤 비교에서도 참이 되지 않고, LIKE는 대소문자를 가리지 않으며, 0으로 나누면 NULL입니다. 집계 질의에서 GROUP BY에 없는 열은 그룹의 첫 행 값을 씁니다(SQLite와 같음). 서브쿼리와 윈도 함수는 없습니다.

파일은 이 탭 안에서만 읽히고 업로드되지 않습니다. 열 유형은 파일에서 추론하므로 숫자 열은 숫자로 비교되고 문자열 열은 글자 순서로 비교됩니다.

사용 방법

  1. 파일을 하나 이상 놓습니다

    파일마다 표가 하나씩 생기고 이름은 파일 이름에서 따옵니다. 타이핑하기 불편하면 편집기 위 목록에서 바꾸면 됩니다.

  2. 질의를 씁니다

    SELECT, WHERE, GROUP BY와 HAVING, ORDER BY, LIMIT, CASE, 그리고 두 표까지의 JOIN을 씁니다. Ctrl+Enter로 실행합니다. 상자 아래 예시 버튼을 누르면 지금 올린 표 이름으로 된 질의가 채워집니다.

  3. 오류 위치를 봅니다

    질의가 실패하면 파서가 멈춘 행과 열을 알려 줍니다. 실제 실수는 대개 거기서 한 토큰 앞에 있습니다.

  4. 결과를 내보냅니다

    엑셀에서 열 수 있도록 BOM이 붙은 CSV로, 또는 JSON을 읽는 곳에 넣을 수 있게 JSON으로 내보냅니다.

자주 묻는 질문

서브쿼리와 윈도 함수도 되나요?

안 됩니다. SQLite를 웹어셈블리로 옮긴 것이 아니라 이 사이트를 위해 만든 SQL 부분집합입니다. WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, CASE가 붙은 SELECT와 두 표까지의 JOIN이 전부입니다. 문법 패널이 그 정확한 목록입니다.

자료가 서버로 가나요?

가지 않습니다. 파서와 실행기 모두 이 탭에서 돕니다. 진짜 데이터베이스보다 기능이 적은 이유가 그것이고, 업로드할 수 없는 파일에 쓸 수 있는 이유도 그것입니다.

한글 열 이름을 그대로 쓸 수 있나요?

그대로 쓸 수 있습니다. 이름에 띄어쓰기가 있으면 큰따옴표나 백틱으로 감싸세요.

오류 메시지가 한국어로 나옵니다

질의 엔진의 스물다섯 가지 구문·실행 오류 메시지는 한국어만 있습니다. 각각이 테스트에 그대로 적혀 있기 때문입니다. 편집기 옆의 문법 패널은 두 언어로 적혀 있고 같은 내용을 담고 있습니다.

이 도구로 이어지는 것

다음 단계

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