select문의 쿼리 순서

Keunjae Song·2020년 8월 6일
1

sql

목록 보기
2/2

기본 select문 형식

select문은 기본적으로

1. SELECT
2. FROM
3. WHERE
4. GROUP BY
5. HAVING
6. ORDER BY

순서대로 작성하게 된다.

그렇지만 각각 구문이 작성한 순서(select -> from -> where -> ... -> order by)대로 수행되는 것은 아니다.

쿼리 순서

1. FROM절 수행

  • 접근할 테이블이 존재하는 테이블인지 확인한다.
  • select 권한이 있는지 체크한다.
    • select 권한이 없는데 select문을 날린 경우 semantic error가 발생한다.
    • 오타가 있거나, 쉼표가 있어야 하는데 빠진 경우는 문법 오류라 해서 syntax error가 발생한다.

2. WHERE절 수행

  • 어떤 조건들이 있는지 체크한다.
  • 테이블에서 이 조건들에 해당하는 row들을 가져온다.

3. GROUP BY절 수행

  • 가져온 row들을 어떤 방식으로 group by할 지 체크한다.

4. HAVING절 수행

  • group by한 데이터들 중에 버려야 할 데이터가 있는지 체크한다.

5. SELECT절 수행

  • 가져온 row들에 대해 어떤 column을 출력해야 할 지 정한다.
  • 이미 데이터를 들고 온 후에 select를 하기 때문에 select * from특정 컬럼만 select하는 것은 io 비용이 같다.(단, 인덱스의 경우는 제외)

6. ORDER BY절 수행

  • 정렬 수행
  • select절이 먼저 수행되기 때문에 select문에서 지정한 alias를 order by절에서 사용할 수 있다.
    • group by절은 select보다 먼저 수행되기 때문에 group by절에서는 사용할 수 없다.

Reference

https://www.youtube.com/watch?v=eeq0wDl3bLs

0개의 댓글