쿼리의 수행순서를 인지하지 않고도 원하는 결과를 위해 쿼리를 작성하는 것은 얼마든지 가능하다.
하지만 수행순서를 인지하고 쿼리를 작성한다면 쿼리의 성능을 향상하는 것은 물론 실행순서에 따라 영향을 끼치는 문법상의 오류도 방지할 수 있다.
[수행순서]
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)
*출처
'Language > Oracle' 카테고리의 다른 글
[Oracle] Index (0) | 2025.02.01 |
---|---|
[Orcale] 페이징 ROWNUM, OFFSET (0) | 2024.02.27 |