고래씌

[Oracle] 1-3. DML(SELECT) - 기본문법(연산자 우선순위, ORDER BY절) 본문

Database/Oracle

[Oracle] 1-3. DML(SELECT) - 기본문법(연산자 우선순위, ORDER BY절)

고래씌 2023. 11. 23. 14:32

1. 연산자 우선순위

ⓞ ()
① 산술연산자
② 연결연산자
③ 비교연산자
④ IS NULL, LIKE, IN
⑤ BETWEEN AND
⑥ NOT
⑦ AND
⑧ OR

 

 

2. ORDER BY 절

- SELECT문 가장 마지막에 기입하는 구문 뿐만 아니라 가장 마지막에 실행되는 구문
- 최종 조회된 결과물들에 대해서 "정렬"기준을 세워주는 구문

 

 

    [표현법]
    SELECT 조회할 컬럼 1, 2, 3...
    FROM 조회할 테이블명
    WHERE 조건식
    ORDER BY [정렬기준으로 세우고자하는 칼럼명/별칭/컬럼순번] [ASC/DESC] [NULLS FIRST/NULLS LAST]

 

 

▶ 오름차순 / 내림 차순

    - ASC : 오름차순(생략시 기본값)
    - DESC : 내림차순

 

정렬하고자 하는 컬럼값에 NULL이 있을 경우

    - NULLS FIRST : 해당 NULL값들을 앞으로 배치하겠다(내림차순 정렬일 경우 기본값)
    - NULLS LAST : 해당 NULL값들을 뒤로 배치하겠다(오름차순 정렬일 경우 기본값)

 

 

▶ 보너스 기준 정렬

 

SELECT *
FROM EMPLOYEE
ORDER BY BONUS DESC NULLS LAST, SALARY ASC;

 

ORDER BY BONUS; -- NULLS LAST 기본값
ORDER BY BONUS ASC NULLS FIRST;   -- NULL값이 맨위에 먼저 출력

ORDER BY BONUS DESC;  -- NULLS FIRST 기본값

 

☞ 첫번쨰로 제시한 정렬기준의 컬럼값이 일치할경우 두번째 정렬기준을 가지고 다시 정렬

 

 

▶ 연봉기준 오름차순 정렬

SELECT EMP_NAME, SALARY, (SALARY * 12) 연봉
FROM EMPLOYEE
-- ORDER BY SALARY * 12
--ORDER BY 3  -- 컬럼 순번
ORDER BY 연봉;  

 

별칭 사용 가능 . 순서상 SELECT가 먼저 실행되고 ORDER BY가 실행되기 때문
ORDER BY 는 숫자 뿐만이 아니라 문자열, 날짜도 정렬 가능