Language/Oracle

[Oracle] SQL 쿼리 수행 순서

김당 2025. 1. 28. 14:27

쿼리의 수행순서를 인지하지 않고도 원하는 결과를 위해 쿼리를 작성하는 것은 얼마든지 가능하다.

하지만 수행순서를 인지하고 쿼리를 작성한다면 쿼리의 성능을 향상하는 것은 물론 실행순서에 따라 영향을 끼치는 문법상의 오류도 방지할 수 있다.

 

[수행순서]

1. FROM

- 조회할 테이블 지정

+) JOIN

- 조인을 하여 하나의 가상 테이블로 결합

 

2. WHERE

- 조건에 맞는 데이터 필터링

+) GROUP BY 

- 필터링한 데이터 기준으로 그룹화

 

+) HAVING

- 그룹화한 데이터에 조건에 맞게 필터링

 

3. SELECT

- 출력할 데이터 선택

 

4. ORDER BY

- 출력할 데이터 정렬

 

5. LIMIT

- 출력할 행의 수 지정

 

[수행순서에 따라 주의해야 할 문법]

1. ALIAS 사용

1) ORDER BY절

select concat(first_name, last_name) as name
from user
order by name desc
;

- 위 쿼리의 수행 순서는 'from -> select -> order by'가 되므로 select에서 지정한 name 별칭을 order by에서 사용 가능하다.

 

2) WHERE절

select concat(first_name, last_name) as name
from user
where name like '김다%'
;

- 위 쿼리의 수행 순서는 'from -> where-> select'가 되므로 select에서 지정한 name 별칭을 where에서 사용이 불가능하여 오류가 발생하게 된다.(Invalid Identifier error)

 

 

*출처

https://myjamong.tistory.com/172

https://jaehoney.tistory.com/191