Skip to content

Latest commit

 

History

History
71 lines (47 loc) · 1.79 KB

01_SQL_Order_of_Operations.md

File metadata and controls

71 lines (47 loc) · 1.79 KB

SQL Order of Operations

SELECT 쿼리 실행 순서에 대해 알아보아요.

Reference: SQL BOLT



문법 순서

  1. SELECT column 명
  2. FROM table 명
  3. WHERE 조건식
  4. GROUP BY column 명
  5. HAVING 조건식
  6. ORDER BY column 명


실행 순서

  1. FROM
  2. ON
  3. JOIN
  4. WHERE
  5. GROUP BY
  6. HAVING
  7. SELECT
  8. DISTINCT
  9. ORDER BY


실행 순서 자세히 알아보기

1. FROM and JOINs

  • JOIN이 먼저 실행되어 data set이 모아진다
  • 이 작업에는 subquery들도 포함되어, JOIN 된 모든 row와 column이 포함된 임시 table을 생성한다

2. WHERE

  • Data set을 형성하면, WHERE의 조건이 각 행에 적용된다
  • WHERE 절의 제약 조건은 FROM절로 요청된 table에 적용된다

3. GROUP BY

  • WHERE 절이 적용된 후 남아있는 row들은 GROUP BY절에 지정된 column의 공통된 값을 기준으로 그룹화된다
  • GROUP BY 절을 사용하면 해당 column으로 aggregate function (집계 함수)를 사용할 수 있다

4. HAVING

  • GROUP BY 절이 query에 있는 경우, HAVING 절의 제약 조건이 group화 된 row에 적용된다
  • HAVING 절의 조건 변경은 결과 data의 변경은 없고, 출력되는 record 개수만 변경될 수 있다

5. SELECT

  • SELECT 절이 마지막으로 실행된다

6. DISTINCT

  • 남아있는 row 중에서, column 값이 중복된 row들은 삭제된다

7.ORDER BY

  • 저장된 값을 오름차순 혹은 내림차순으로 정렬한다
  • Query의 SELECT 절이 이미 실행되었기 때문에, ORDER_BY 절에서는 alias를 참조할 수 있다