컴퓨터 과학/데이터 베이스

SQL 문 작성 순서와 실제 실행 순서 완전 정리

Data Jun 2025. 8. 17. 22:21

SQL 문을 작성하다 보면 "절(clause)의 순서"가 정해져 있다는 걸 반드시 지켜야 합니다. 이 순서가 맞지 않으면 SQL 문은 실행되지 않고, 에러가 발생하게 되죠.

 

SQL 문을 작성할 때 지켜야 할 순서

SQL 문은 보통 아래와 같은 작성 순서로 구성됩니다.

  1. SELECT – 어떤 컬럼을 조회할지 지정
  2. FROM – 어떤 테이블에서 가져올지 지정
  3. WHERE – 조건에 맞는 row만 필터링
  4. GROUP BY – 특정 기준에 따라 그룹핑
  5. HAVING – 그룹핑된 결과에서 조건으로 걸러내기
  6. ORDER BY – 정렬 기준 설정
  7. LIMIT – 가져올 row 개수 제한

즉, SQL을 작성할 때는 반드시 위 순서를 지켜야 합니다.

 

하지만 실제 실행 순서는 다르다!

흥미로운 사실은, SQL 문이 우리가 쓴 순서대로 실행되는 게 아니라는 점입니다. 데이터베이스는 아래 순서대로 SQL을 해석하고 실행합니다.

  1. FROM – 어떤 테이블을 대상으로 할지 먼저 결정
  2. WHERE – 테이블에서 조건에 맞는 row만 선택
  3. GROUP BY – 남은 row들을 그룹으로 묶음
  4. HAVING – 그룹 단위에서 조건에 맞는 그룹만 남김
  5. SELECT – 조회할 컬럼들을 선택
    • 여기서 alias(별칭)을 지정하면 이후 절에서 사용 가능
  6. ORDER BY – 결과를 정렬
  7. LIMIT – 최종적으로 몇 개만 보여줄지 결정

 

각 절의 실행 의미 정리

  • FROM: "어느 테이블에서 가져올까?" → 출발점
  • WHERE: "row 단위로 필터링" → 그룹핑 전 조건
  • GROUP BY: "row들을 하나의 그룹으로 묶기"
  • HAVING: "그룹 단위에서 조건 걸기" → 그룹핑 후 조건
  • SELECT: "조회할 컬럼 뽑기" → 여기서 alias 지정 가능
  • ORDER BY: "정렬하기"
  • LIMIT: "필요한 만큼만 자르기"

 

핵심 요약

  • 작성 순서: SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY → LIMIT
  • 실행 순서: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT

💡 이 실행 순서를 확실히 기억하고 있으면,
실무에서 아무리 복잡한 SQL 문을 보더라도 결과가 어떻게 나올지 쉽게 파악할 수 있습니다. 특히 WHERE vs HAVING의 차이도 자연스럽게 이해되죠.

👉 SQL 공부할 때는 "작성 순서"와 "실행 순서"를 둘 다 암기하는 게 포인트입니다!