작성 순서 vs 실행 순서

SELECT는 먼저 쓰지만, 데이터는 FROM과 WHERE에서 먼저 만들어집니다.

SQL을 읽을 때는 문장 순서와 결과가 만들어지는 순서를 분리해야 합니다. 이 차이를 알면 별칭, 집계, 정렬 규칙이 자연스럽게 설명됩니다.

작성 순서

사람이 적는 순서
1SELECT출력 컬럼과 표현식
2FROM대상 테이블
3WHERE행 조건
4GROUP BY그룹 기준
5HAVING그룹 조건
6ORDER BY정렬
7LIMIT결과 제한

논리 실행 순서

결과가 만들어지는 순서
1FROM읽을 행의 출발점
2WHERE개별 행 필터링
3GROUP BY남은 행 그룹화
4HAVING그룹 필터링
5SELECT출력값과 별칭 계산
6ORDER BY정렬
7LIMIT필요한 행만 반환
WHERE

SELECT보다 먼저 실행되므로 SELECT 별칭을 바로 볼 수 없습니다.

HAVING

GROUP BY 이후 실행되므로 집계 결과를 조건으로 걸 수 있습니다.

ORDER BY

SELECT 이후 실행되므로 출력 별칭으로 정렬할 수 있습니다.