1. ORDER BY
정렬
ORDER BY
절은 SQL 문장으로 조회된 데이터들을
다양한 목적에 맞게 특정 칼럼 기준으로 정렬하여 출력할 때 사용.
ORDER BY
절에 칼럼명 대신
SELECT
절에서 사용한
ALIAS
명이나
칼럼 순서 나타내는 정수도
사용 가능.
1.1. 행row 기준 정렬
1
2
3
SELECT PLAYER_NAME 선수명, POSITION 포지션, BACK_NO 백넘버
FROM PLAYER
ORDER BY PLAYER_NAME DESC;
Oracle에선
NULL
값이 가장 큰 값으로 취급됨.
ORDER BY
절의 사용 특징
- 기본적 정렬 순서는 오름차순(ASC)
- 숫자형 데이터 타입은 오름차순 정렬 시
가장 작은 값부터 출력
- 날짜형 데이터 타입은 오름차순 정렬 시
날짜 값이 가장 빠른 순.
- Oracle에선 NULL
값을 가장 큰 값으로 간주.
- SQL Server는 그 반대.
1.2. 열column 기준 정렬
1
2
3
4
SELECT PLAYER_NAME 선수명, POSITION 포지션, BACK_NO 백넘버, HEIGHT 키
FROM PLAYER
WHERE HEIGHT IS NOT NULL
ORDER BY HEIGHT DESC, BACK_NO;
1.3. 칼럼 순서 매핑
ORDER BY
절에서
칼럼명, ALIAS
명, 칼럼 순서를 같이 혼용 가능.
1.3.1. 칼럼명 + ORDER BY
절 사용
1.3.2. 칼럼명 + ALIAS
명 + ORDER BY
절 사용
1.3.3. 칼럼 순서번호 + ALIAS
명 + ORDER BY
절 사용
2. SELECT
문장 실행 순서
SELECT
문장의 수행 단계
GROUP BY
절과 ORDER BY
가 같이 사용될 때,
SELECT
문장은 6개의 절로 구성됨.
1
2
3
4
5
6
5. SELECT 칼럼명 [ALIAS명]
1. FROM 테이블명
2. WHERE 조건식
3. GROUP BY 칼럼이나 표현식
4. HAVING 그룹조건식
6. ORDER BY 칼럼이나 표현식;
1. 발췌 대상 테이블 참조
(FROM
)
2. 발췌 대상 데이터 아닌 것은 제거
(WHERE
)
3. 행들을 소그룹화
(GROUP BY
)
4. 그룹핑된 값의 조건에 맞는 것만을 출력
(HAVING
)
5. 데이터 값을 출력/계산
(SELECT
)
6. 데이터 정렬
(ORDER BY
)
위 순서는 옵티마이저가
SQL 문장의 SYNTAX
, SEMANTIC
에러 점검 순서
ex) FROM
절에 정의 안 된 테이블의 칼럼을
WHERE
, GROUP BY
, HAVING
, SELECT
, ORDER BY
절에서 사용 시 에러.
RDB가 데이터를 메모리에 올릴 때
행 단위로 모든 칼럼 가져오므로
SELECT
절에서 일부 칼럼만 선택하더라도
ORDER BY
절에서 메모리에 올라와 있는
다른 칼럼의 메모리를 사용 가능.