본문 바로가기

Language/Oracle

[Oracle] SQL 쿼리 수행 순서

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

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

 

[수행순서]

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

'Language > Oracle' 카테고리의 다른 글

[Oracle] Index  (0) 2025.02.01
[Orcale] 페이징 ROWNUM, OFFSET  (0) 2024.02.27