제 8절. ORDER BY 절

1. ORDER BY 정렬

특정 칼럼을 기준으로 정렬하여 출력하는데 사용한다.

ORDER BY 절에 칼럼명 대신 ALIAS나 칼럼 순서를 나타내는 정수도 사용 가능하다.
기본 정렬 방식은 오름차순이다. (ASC)
SQL 문장 가장 마지막에 위치한다.

ORACLE 에서는 NULL 값을 가장 큰 값으로 간주하기 때문에 오름차순으로 정렬한 경우 NULL값이 가장 마지막에 출력된다.

2. SELECT 문장 실행 순서

ORDER BY 가 가장 마지막이다!

데이터가 있는 테이블을 참조한다 (FROM)
조건식으로 대상이 아닌 데이터를 제거한다 (WHERE)
소그룹화 한다 (GROUP BY)
그룹화 할 때 조건을 만족하는 것만 그룹화한다 (HAVING)
조회한다 (SELECT)
정렬한다 (ORDER BY)

이 순서는 옵티마이저가 SQL 문장의 문법, 구문 에러를 점검하는 순서이기도 하다.

ORDER BY 절에는 SELECT 문에 나타나지 않은 문자형 항목이 포함될 수 있다.
왜냐하면 데이터베이스가 데이터를 메모리에 올릴 때 행 단위로 모든 칼럼을 가져오게 되기 때문이다.
그래서 SELECT 절에서 일부의 칼럼만 선택하더라도 ORDER BY 절에서 메모리에 올라와 있는 다른 칼럼의 데이터를 사용할 수 있다.

5. SELECT 칼럼명
1. FROM 테이블명
2. WHERE 조건식
3. GROUP BY 칼럼이나 표현식
4. HAVING 그룹조건식
6. ORDER BY 칼럼이나 표현식 ;

3. TOP N 쿼리

ROWNUM

ORDER BY 절과 WHERE 절의 ROWNUM 조건을 같이 사용하면 순위가 높은 N 개의 행을 추출할 수 있다.
주의할 점은 오라클에서 데이터가 조회된 후 정렬을 한다는 점이다. (SELECT 이후에 ORDER BY 수행 )

사용 예) 게시판에서 페이지에 맞게 일정 개수의 글목록을 가져올 때 사용한다.

TOP

728x90

'프로그래밍 > SQLD' 카테고리의 다른 글

SQL 기본 6 : GROUP BY, HAVING  (0) 2020.05.27
SQL 기본 5 : 함수  (0) 2020.05.27
SQL 기본 4 : WHERE 절  (0) 2020.05.27
SQL 기본 3 : TCL  (0) 2020.05.27
SQL 기본 2 : DML  (0) 2020.05.27

+ Recent posts