DB

[DB] MySQL - SELECT 실행 순서

planting grass 2025. 3. 25. 18:01
728x90

SELECT 실행 순서

SQL은 우리가 코드를 작성하는 순서와 실제로 실행되는 순서가 다르다.

때문에, 문법을 사용할때는 정해진 실행 순서를 지키지 않는다면, 오류가 발생하거나, 실행 결과가 이상하게 나올 수 있다.

엥? 어차피 실행되는 순서가 SQL에 정해져 있다면 작성하는 순서는 상관없는게 아닌가? 하는 생각이 들 수 있다.

하지만, SQL은 프로그래밍 언어보다는 선언형 언어에 가깝기 때문에 작성한 문장의 구문 순서에 따라 문장을 이해하고 실행시킨다.

문법 작성 순서

  1. SELECT 컬럼
  2. FROM 테이블
  3. WHERE 조건
  4. GROUP BY 그룹
  5. HAVING 조건
  6. ORDER BY 정렬

실행 작동 순서

  1. SELECT
    → 어떤 컬럼을 출력할지 지정
  2. FROM
    → 어느 테이블에서 데이터를 가져올지 지정
  3. WHERE
    → 각 행(row) 에 대해 조건 필터링
  4. GROUP BY
    → 조건을 통과한 행들을 그룹(묶음) 으로 나눔
    그룹화된 각 그룹에 대해 집계 함수 사용 가능 (SUM(), AVG() 등)
  5. HAVING
    → 그룹화된 결과에 조건을 적용
    WHERE은 개별 행 필터링, HAVING은 그룹 필터링
  6. ORDER BY
    → 결과를 정렬 (오름차순 ASC / 내림차순 DESC)
728x90