Devin.KR

SQL PRACTICE · IN-BROWSER SQLITE

SQL 연구소

설치 없이 SQL 을 직접 돌려 볼까?

SELECT name, salary FROM emp 를 입력하고 Ctrl+Enter 를 누르면 브라우저 안의 SQLite 가 가상 데이터로 바로 결과 표를 돌려줍니다. 58개 연습문제는 채점·힌트·해설까지 붙어 있습니다.

  • SQLite 실행
  • 연습문제 58개
  • 브라우저에서만 처리
  • 무료 · 가입 없음
바로 사용하기 ↓
자유 실습 가상 데이터에서 실제 SQL을 실행해 보세요.

SQL을 실행하면 문장별 결과 표가 나타납니다.

SQLite 실행기를 준비하고 있습니다… 1행 1열

이 실습의 범위

SQLite 메모리 DB를 전용 Worker에서 실행합니다. 중지·시간 초과는 Worker와 DB를 새로 만들며 이전 변경 사항은 사라집니다. DB 초기화는 작성 SQL을 유지합니다. 자유 실습에서는 여러 문장을 실행할 수 있고, 채점은 수정한 DB를 사용하지 않습니다.

회사·주문·경계값·통합 상점 데이터에는 NULL, 중복, 빈 관계, 날짜 경계, 할인, 분할 결제, 셀프 조인과 동률 순위가 포함됩니다. 각 문제는 서로 다른 두 데이터 변형에서 채점해 고정값 답안을 구분합니다.

숫자 정수는 64비트 정밀도를 보존합니다. NULL과 문자열, 중복 개수를 구분하고 정렬을 요구하는 문제만 순서를 검사합니다. 채점 데이터·답안은 브라우저에서 볼 수 있는 학습용 자료이며 인증 점수나 비공개 시험이 아닙니다.

초기 화면·실행기 다운로드에는 네트워크가 필요하지만 SQL·메모·결과는 서버에 보내지 않습니다. 운영 DB 접속, 외부 파일 업로드, 확장 로딩, 다중 사용자 트랜잭션 실험은 제공하지 않습니다.

자체 가상 데이터 4종·표준 SQL 58문제 · sql.js 1.14.1 / SQLite · 라이선스 · 버전·해시

MADE FOR YOUR WORK

이럴 때 쓰세요

SQL 처음 배울 때

DB 서버를 깔고 계정을 만드는 준비 없이, 페이지를 열자마자 SELECT 부터 윈도 함수까지 직접 실행하며 익힙니다.

쿼리 결과 미리 확인

LEFT JOIN 에서 빈 부서가 남는지, GROUP BY 후 COUNT 가 몇이 되는지처럼 헷갈리는 동작을 작은 데이터로 먼저 돌려 봅니다.

시험·면접 전 손풀기

NULL 처리, 중복 행, 동률 순위처럼 자주 묻는 함정이 담긴 문제를 풀고 채점 결과로 어디가 틀렸는지 확인합니다.

스키마 읽는 연습

ERD 탭과 데이터 구성 탭으로 기본키·외래키 관계를 눈으로 따라가며 조인 조건을 세우는 감각을 기릅니다.

STEP BY STEP

SQL 연구소 사용 방법

이렇게 쓰세요

  1. 문제와 데이터셋 고르기

    툴바의 문제 목록에서 연습문제를 고르거나 '자유 실습'을 둔 채 데이터셋만 바꿉니다. 왼쪽 스키마 탐색기에 테이블과 열이 나타납니다.

  2. SQL 작성 후 실행

    편집기에 SQL 을 쓰고 실행 버튼이나 Ctrl/⌘ + Enter 를 누릅니다. 결과 탭에 문장별 결과 표가 나옵니다.

  3. 채점 누르기

    문제를 골랐다면 채점을 누릅니다. SELECT 한 문장을 서로 다른 두 데이터 변형에서 실행해 정답과 비교합니다.

  4. 막히면 힌트·해설 탭

    힌트 1(개념), 힌트 2(접근), 해설과 예시 답안 순서로 열어 봅니다. DB 초기화는 데이터만, SQL 초기화는 편집기만 처음으로 돌립니다.

UNDERSTAND THE BASICS

SQL 은 적은 순서가 아니라 이 순서로 실행된다

SELECT 문은 SELECT 부터 적지만 데이터베이스는 FROM 에서 시작합니다. 테이블을 모으고(FROM·JOIN) 행을 거르고(WHERE) 묶은 뒤(GROUP BY) 묶음을 거르고(HAVING) 그다음에야 열을 고릅니다(SELECT). 그래서 WHERE 에서는 SELECT 에서 붙인 별칭이나 COUNT 같은 집계 결과를 쓸 수 없고, 집계 조건은 HAVING 에 적어야 합니다.

NULL 은 '값 없음'이라 = NULL 비교는 참도 거짓도 아닌 '알 수 없음'이 됩니다. 반드시 IS NULL 로 찾아야 하고, COUNT(*) 는 NULL 행도 세지만 COUNT(열) 은 NULL 을 빼고 셉니다. 연습문제에 NULL 과 문자열 'NULL', 빈 테이블이 따로 들어 있는 이유입니다.

이 실습의 엔진은 SQLite 입니다. 표준 SQL 의 JOIN·GROUP BY·서브쿼리·CTE·윈도 함수는 그대로 연습할 수 있지만, 날짜를 문자열로 저장하는 방식이나 열 타입을 느슨하게 다루는 점은 Oracle·MySQL·PostgreSQL 과 다릅니다. 방언이 갈리는 부분은 쓰는 DB 문서로 한 번 더 확인하세요.

SELECT 문의 논리적 실행 순서
순서절하는 일
1FROM · JOIN대상 테이블을 모으고 잇는다
2WHERE행을 거른다(집계 전)
3GROUP BY같은 값끼리 묶는다
4HAVING묶음을 거른다(집계 후)
5SELECT열을 계산하고 별칭을 붙인다
6ORDER BY정렬한다. 별칭을 쓸 수 있다
7LIMIT앞에서 몇 행만 남긴다

SQL 연구소 사용 안내

브라우저 안의 SQLite에서 SQL을 실행하고 자체 연습문제를 풉니다. 입력 SQL과 데이터는 서버에 전송하지 않습니다.

문제를 선택해 스키마와 샘플 데이터를 확인한 뒤 SQL을 작성하세요. 실행으로 결과를 보고 채점·힌트·해설로 풀이를 확인할 수 있습니다. 중지는 실행 중인 작업을 종료하며 초기화는 샘플 DB를 복원합니다.

QUICK EXAMPLE

SQL 연구소 사용 예제

입력 · 시작

SELECT 1 AS result;

결과 · 확인

result 열에 1을 반환하는 결과 표

실행 엔진과 참고 SQL 방언의 차이를 확인하세요. 운영 DB에 연결되지 않습니다.

어떻게 구현했나

SQLite WebAssembly 엔진을 전용 Worker에서 실행합니다. SQL을 운영 서버 DB로 보내지 않으며, 각 실습 데이터베이스는 브라우저 메모리에만 존재합니다.

채점은 사용자 쿼리와 정답 쿼리를 각각 새 데이터베이스에서 실행하고 결과값·NULL·중복 행·필요한 정렬 순서를 비교합니다.

실행 시간과 표시 결과 크기를 제한하며, 중지와 시간 초과 시 Worker를 종료합니다. SQLite 방언 실습이므로 Oracle·MySQL·PostgreSQL 서버의 동작을 대신하지 않습니다.

BEFORE YOU FINISH

자주 하는 실수

정렬 없이 순서를 믿는다

ORDER BY 가 없으면 행 순서는 보장되지 않습니다. '상위 두 명'처럼 순서가 답인 문제는 정렬 기준과 동률 처리까지 적어야 합니다.

LEFT JOIN 을 WHERE 로 지운다

오른쪽 테이블 조건을 WHERE 에 두면 NULL 로 채워진 행이 걸러져 INNER JOIN 과 같아집니다. 빈 쪽도 남기려면 조건을 ON 에 두세요.

결과가 맞았다고 끝낸다

지금 데이터에서 우연히 맞는 고정값 답안은 다른 데이터에서 틀립니다. 채점이 두 데이터 변형을 쓰는 이유이니, 조건을 값이 아닌 규칙으로 적으세요.

자주 묻는 질문

SQL 연습할 수 있는 무료 사이트 있나요?

이 페이지가 그런 용도입니다. 가입이나 설치 없이 브라우저에서 SQLite 로 SQL 을 실행하고, 연습문제 58개를 채점받을 수 있습니다.

MySQL 이나 Oracle 문법도 되나요?

실행 엔진은 SQLite 라서 표준 SQL 은 대부분 동작하지만 각 DB 고유 함수와 문법은 다를 수 있습니다. Oracle·MySQL 서버를 흉내 내지 않습니다.

실행 결과가 잘리거나 멈춰요

한 번 실행은 3초, 결과는 모두 합쳐 500행·1MB 까지입니다. LIMIT 이나 조건을 추가하세요. 시간 초과나 중지 후에는 DB 가 새로 만들어져 그전 변경 내용이 사라집니다.

INSERT, UPDATE 도 해 볼 수 있나요?

자유 실습에서는 여러 문장을 한 번에 30개까지 실행할 수 있어 데이터 변경도 연습할 수 있습니다. 채점만 SELECT 한 문장으로 제한되며 수정한 DB 를 쓰지 않습니다.

푼 기록과 메모는 어디에 저장되나요?

작성한 SQL·메모·학습 기록은 이 브라우저에만 저장되고 다른 기기와 동기화되지 않습니다. 메모 탭에서 기록을 지울 수 있습니다.

입력한 데이터는 어디에서 처리하나요?

이 도구의 입력 데이터는 브라우저에서 처리하며 도구 기능을 위해 서버로 업로드하지 않습니다. 결과를 공유하기 전 민감한 정보가 없는지 확인하세요.

함께 쓰면 좋은 도구

전체 도구 바로가기

손으로 익히기

문서 · 데이터 변환

개발 실무

한국 개발 특화

API · 네트워크

이미지 · 색상