DB/SQL

[SQL] SELECT문의 실행 순서

Sigfriede 2024. 7. 28. 18:12

  SELECT문은 다음과 같은 순서로 작성되어야 한다.

  1. SELECT
  2. FROM

  3. WHERE

  4. GROUP BY

  5. HAVING

  6. ORDER BY

  7. LIMIT

  

  그러나 다음과 같은 순서로 실행된다.

  1. FROM: 대상으로 하는 테이블

  2. WHERE: 조건을 만족하는 행

  3. GROUP BY: 대상을 기준으로 묶어 하나의 행으로 보여줌

  4. HAVING: GROUP BY에서 묶어진 값들 중에서 조건을 만족하는 그룹

  5. SELECT: 모든 또는 선택한 열을 조회

                    (SELECT 절에서 AS를 설정하므로 이를 기점으로 AS 처리된 이름 사용 가능)

  6. ORDER BY: 열을 기준으로 기준에 따라 오름차순 또는 내림차순 정렬

  7. LIMIT: 조회된 행 중에서 몇 번부터 몇 번까지 보여줄 것인지 설정

 

  작성되어야 하는 순서와 실제로 동작하는 순서가 다르므로 유의해야 한다. 예를 들어 WHERE에서 조건을 걸 때 AS 처리 된 이름을 사용하고자 한다면 오류가 발생한다. SELECT가 실행되기 이전이므로 WHERE에서는 AS 처리 된 이름을 알 수 없다. 따라서 작성되는 순서와 실행되는 순서의 차이를 충분히 고려하여 SQL문을 작성해야 오류가 발생하지 않고 자신이 원하는 데이터만을 반환할 수 있다.