행 정렬 ( ORDER BY )
- 인덱스가 없다면 기본적으로 데이터는 행에 삽입된 순서대로 출력된다.
- 행들을 특정 열(들)을 기준으로 정렬하고자 할 때 사용하는 연산자이다.
- 사용 구문은 다음과 같다.
ORDER BY { order_by_expression [ ASC | DESC ] } [, ... n]
- order_by_expression : 정렬할 열을 지정한다. 열의 형식은 이름, 별칭, 연산식 등으로 지정할 수 있다.
- order_by_expression 구문이 복수로 나올 때에는 첫 번째 것이 1차 정렬키, 두 번째 것이 2차, 다음이 3차.. 이런식으로 지정된다.
- ASC | DESC : ASC는 오름차순, DESC는 내림차순 정렬이다. 기본값은 오름차 이기 때문에 ASC는 생략이 가능하다.
우선 ListPrice를 기준으로 내림차순으로 정렬 후, ListPrice가 동일할 경우 ProductID를 기준으로 오름차순으로 정렬한다.
다시 한번 말하지만 ASC는 생략이 가능하다. (주석 참고)
ORDER BY 연산의 1은 열 목록의 첫 번째 열인 ListPrice를 말한다. 이와 동일하게 2는 ProductID, 3은 name를 나타낸다.
중복 행 제거 ( DISTINCT )
- 결과 집합에 완전히 똑같은 레코드 들이 복수로 존재하는 경우가 가끔 있는데, 이는 대부분의 경우 비효율적이다.
- 사용 구문은 다음과 같다.
DISTINCT column [ , ...n ]
- DISTINCT : 열이 여러개 있을 때 모든 열을 조합한 값이 중복되지 않도록 한다.
- DISTINCT가 포함된 SELECT 문에 ORDER BY 절이 있을 경우에는 정렬하는 열들이 열 목록에 반드시 나타나야 한다.
위의 결과 집합에는 중복된 데이터가 상당히 많은것을 볼 수 있다. 이는 로직상 매우 비효율적이다.
DISTINCT를 이용하여 중복 행을 제거한 결과값이다.
위와 같이 여러 행들에 대한 중복 제거도 가능하다.
'Study > 데이터 베이스' 카테고리의 다른 글
[DBMS 강의 - 08] 하위 쿼리 (0) | 2014.04.22 |
---|---|
[DBMS 강의 - 07] 테이블 조회_3 (0) | 2014.03.11 |
[DBMS 강의 - 05] 테이블 조회_1 (0) | 2014.03.04 |
[DBMS 강의 - 04] 데이터 형식 (0) | 2014.03.04 |
[DBMS 강의 - 03] SQL (0) | 2014.03.04 |