티스토리 뷰

DB/SQL

<SQL> SQL 실행 순서

면목동인간 2026. 3. 3. 21:21

SQL 실행 순서

 SQL 실행 순서는 우리가 SQL을 작성하는 순서와 실제 SQL이 쿼리를 처리하는 순서가 다르다.

 

SQL 쿼리의 논리적 순서

  1. FROM: 가장 먼저 실행. 어떤 테이블에 데이터를 가져올지 결정
  2. WHERE: FROM에서 가져온 테이블의 개별 행을 필터링한다.
  3. GROUP BY: WHERE 절의 필터링을 통과한 행들을 기준으로 그룹을 형성한다.
  4. HAVING: GROUP BY를 통해 만들어진 그룹들을 필터링한다.
  5. SELECT: 위의 조건을 통과한 행 또는 그룹들에 대해 보고자 하는 칼럼을 선택하고, 집계 함수(SUM, AVG 등등), 별칭(AS) 등이 이 단계에서 이루어진다.
  6. ORDER BY: SELECT 절에서 선택된 최종 결과 후보들을 지정된 순서로 정렬한다. (SELECT가 ORDER BY 보다 먼저 실행하기 때문에 별칭을 사용할 수 있다.)
  7. LIMIT: 정렬된 결과 중에서 최종적으로 반환할 행의 개수를 제한한다.

FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY -> LIMIT

 

SQL 실행 순서 쿼리 예)

 2026년 3월 3일 이전에 들어온 주문 중에서(WHERE), 고객별로 그룹화하여(GROUP BY), 주문 건수가 3회 이상인 고객을 찾아서(HAVING), 고객의 이름과 총 구매 금액을 조회하고(SELECT), 총 구매 금액을 기준으로 내림차순 정렬하고(ORDER BY), 3개의 데이터만 출력해라(LIMIT).

SELECT
    customer_name,
SUM(price * quantity) AS total_purchase -- 5단계
FROM
    order_stat -- 1단계
WHERE
    order_date < '2026-03-03' -- 2단계
GROUP BY
    customer_name -- 3단계
HAVING
COUNT(*) >= 3 -- 4단계
ORDER BY
    total_purchase DESC -- 6단계
LIMIT 3; -- 7단계

 

정리

SQL 실행 순서는 작성한 SQL 순서와 다를 수 있다. 실제 물리적인 실행 순서는 FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY -> LIMIT와 같다.

 


본 포스팅은 “ 김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)/인프런”를 학습한 내용을 정리한 것

 

댓글
최근에 올라온 글
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함
Total
Today
Yesterday