Loading...

DB/Oracle / / 2022. 2. 4. 16:33

DB 15강. ORDER BY

반응형

항상 정렬은 가장 마지막에 수행된다.

FROM -> WHERE -> SELECT -> ORDER BY

 

테이블을 퍼올리고, 필요한 애들만 솎아낸 다음

어떤 프로젝션이 필요한지 추려내서

열을 보고 정렬하는 것이다.

 

오라클 쿼리 실행 순서

 

1. FROM : SQL 테이블 최우선 확인

2. WHERE : 테이블에서 주어진 조건에 맞는 레코드 추출

3. SELECT : 최종적으로 추출된 프로젝션 조회

4. ORDER BY : 추출된 데이터 정렬

 

FROM은 하드디스크에서 일어나고

SELECT와 WHERE은 메모리에서 일어난다.

 

처음 emp 테이블을 FROM으로 퍼올린 후

두 번째로 emp를 FROM으로 퍼올릴 때는

하드디스크에서 퍼올리지 않고 캐싱한다.

 

메모리에 올라와있기 때문이다.

 

지속적으로 emp를 메모리에서 조회한다면

메모리에서 사라지지 않는다.

 

다른 테이블을 메모리로 올리다가

메모리가 꽉 차게 되면

그때 emp가 메모리에서 사라진다.

 


-- ORDER BY 정렬
-- ASC 오름차순(디폴트), DESC 내림차순
SELECT *
FROM emp
WHERE job = 'MANAGER'
ORDER BY ename;

원하는 컬럼을 정렬한다.

디폴트로 ASC가 생략되어 있다.

Ascending의 약자 ASC, 오름차순이다.

반대로 Descending의 약자 DESC가 내림차순이다.

-- ORDER BY 정렬
-- ASC 오름차순(디폴트), DESC 내림차순
SELECT *
FROM emp
WHERE job = 'MANAGER'
ORDER BY ename ASC;

 

 

월급을 오름차순으로 정렬한 후,

월급이 같으면 이름도 오름차순으로 정렬한 것이다.

SELECT sal, ename, deptno
FROM emp
ORDER BY sal ASC, ename ASC;

 

mod( )는 나머지를 계산하는 함수이다.

SELECT mod(sal, 500) 나머지, ename
FROM emp
ORDER BY 1;

SELECT mod(sal, 500) FROM emp; 의 경우에는

ORDER BY에 어떤 걸 적어주어야 할까?

 

위와 같은 연산 식이 길어지면

ORDER BY 1

혹은 ORDER BY 2

이런 식으로 SELECT 한 컬럼의 순서를 적어주기도 한다.

 

 

 

 

[출처]

https://cafe.naver.com/metacoding

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com


메타 코딩 유튜브
https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 
반응형