ORDER BY
SELECT name, score
FROM students
ORDER BY score DESC, name ASC;
여러 키를 쓰면 앞 키가 우선입니다. NULL 정렬 순서는 DB마다 다를 수 있으니, 연습에서는 NULL이 적은 데이터로 확인하세요.
LIMIT / OFFSET
SELECT * FROM t ORDER BY id LIMIT 10;
SELECT * FROM t ORDER BY id LIMIT 10 OFFSET 20;
상위 N개, 페이지네이션에 씁니다. OFFSET이 커지면 비용이 커질 수 있어, 실무에서는 키 기반 페이지를 쓰기도 합니다. 이 사이트 연습 규모에서는 LIMIT만으로 충분합니다.
DISTINCT
SELECT DISTINCT city FROM users;
행 전체(선택 컬럼 조합) 기준 중복을 제거합니다.
집계가 필요하면 GROUP BY가 맞는 경우가 많습니다.
함정
ORDER BY없이LIMIT만 쓰면 어떤 N개인지 보장되지 않습니다.SELECT *+DISTINCT는 예상과 다른 열이 섞여 중복이 안 없어질 수 있습니다.- 문자열 정렬은 콜레이션(대소문자·로케일)에 따라 달라집니다.
체크리스트
| 질문 | 확인 |
|---|---|
| 정렬 키가 명시됐나? | ORDER BY |
| 상위만 필요한가? | LIMIT |
| 중복 제거인가, 집계인가? | DISTINCT vs GROUP BY |
연습
SQL 연습 문제에서 점수 상위 3명만 고르는 질의를 작성해 보세요.
한 줄
> 정렬을 명시한 뒤 LIMIT. 중복은 DISTINCT, 집계는 GROUP BY.
더 깊게
읽은 뒤 연습장에서 예제 코드를 한 번 타이핑해 보세요. 눈으로만 보면 하루 뒤 사라집니다.
관련 원리 카드와 문제 태그로 바로 이어서 풀면, 문법·패턴이 한 묶음으로 남습니다.
막히면 30분 규칙: 입력을 로그로 확인 → 기대/실제 한 줄 비교 → 그래도 안 되면 배우기 레슨으로 잠시 복귀.