Home 제1장 - 제9절: 조인(JOIN)
Post
Cancel

제1장 - 제9절: 조인(JOIN)

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 절에서 메모리에 올라와 있는
다른 칼럼의 메모리를 사용 가능.



3. Top N 쿼리


Contents