반응형
1. ORDER BY
mysql> SELECT 열명 FROM 테이블명 WHERE 조건식
ORDER BY 열명1 [ASC | DESC], 열명2 [ASC | DESC]...;
- 복수의 열을 지정해 정렬하는 경우
- ex) 상품코드와 해당 상품의 하위 번호까지 함께 고려하는 경우 정렬할 때 NULL값에 주의해야 한다!
2. 복수 열로 정렬 지정
- ORDER BY구를 지정해도 1개의 열만으로는 정확히 순서를 결정할 수 없는 경우가 많다.
- 언제나 같은 순서로 결과를 얻고 싶다면, 반드시 ORDER BY구로 순서를 지정해야 한다.
2-1. ORDER BY구로 복수 열 지정하기
mysql> SELECT 열명 FROM 테이블명 ORDER BY 열명1, 열명2...;
- 값이 같아서 순서를 결정할 수 없는 경우에는 다음으로 지정한 열명을 기준으로 정렬한다.
- 위의 경우에는 첫번째 오는 열을 기준으로 값이 같은 경우가 있는 경우에는 다음 열명을 기준으로 가름한다.
2-2. 정렬방법 지정하기
- 복수 열을 지정한 경우 각 열에 대해 개별적으로 정렬방법을 지정할 수 있다.
- 각 열 뒤에 ASC나 DESC를 붙여준다.
2-2-1. 복수 열 정렬
mysql> SELECT 열명 FROM 테이블명 ORDER BY 열명1 [ASC | DESC], 열명2 [ASC | DESC]...;
- 구문 중에 []는 생략 가능
- |: 둘 중에 하나
- .. 동일한 형태로 연속해서 지정 가능하다는 의미
- 복수열을 지정하는 경우에도 정렬방법 생략시, 기본값은 오름차순(ASC)이다.
2-2-2. a열의 정렬 방식은 내림차순으로 지정해주었는데, b열의 정렬 방식은 생략되어 있는 경우
ORDER BY a DESC, b;
- 데이터베이스 제품에 따라 기본값이 달라서 내림차순이 될 수도, 오름차순이 될 수도 있다.
- 문장의 가독성을 높이기 위해서라도 가능한한 정렬방법을 생략하지 말고 지정하자!
3. NULL값의 정렬순서
- NULL값은 그 특성상 대소비교를 할 수 없기 때문에 정렬 시에는 별도의 방법으로 취급한다.
- 특정 값보다 큰 값, 특정 값보다 작은 값으로 나눈다.
- ORDER BY로 지정한 열에서 NULL값을 가지는 행은 가장 먼저 표시되거나 가장 나중에 표시된다.
- NULL값에 대한 대소비교 방법은 표준 SQL에도 규정되어 있지 않기 때문에
- 데이터베이스 제품에 따라 기준이 다르다.
- MySQL에서는 NULL값을 가장 작은 값으로 취급
- -> 오름차순에서 가장 먼저, 내림차순에서는 가장 나중에 표시
반응형
'자격증 > SQLD' 카테고리의 다른 글
[SQL 첫걸음] 12강. 수치 연산 (0) | 2022.04.04 |
---|---|
[SQL 첫걸음] 11강. 결과 행 제한하기- LIMIT (0) | 2022.04.04 |
[SQL 첫걸음] 9강. ORDER BY (0) | 2022.04.04 |
[SQL 첫걸음] 8강. 패턴 매칭에 의한 검색 (0) | 2022.04.04 |
[SQL 첫걸음] 7강. 조건 조합하기 (0) | 2022.04.04 |