3.6 KiB
3.6 KiB
09강. 정렬 - ORDER BY
ORDER BY 구
SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명
SELECT명령에ORDER BY구를 지정하면 검색 결과의 행 순서를 바꿀 수 있다.ORDER BY구를 지정하지 않을 경우에는 데이터베이스 내부에 저장된 순서로 반환된다.- 언제나 정해진 순서로 결괏값을 얻기 위해서는
ORDER BY구를 지정해야 한다.
1. ORDER BY로 검색 결과 정렬하기
SELECT명령의ORDER BY구로 정렬하고 싶은 열을 지정하면 지정된 열의 값에 따라 행 순서가 변경된다.- 이때
ORDER BY구는WHERE구 뒤에 지정한다.
WHERE 구 뒤에 ORDER BY 구를 지정하는 경우
SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명
- 검색 조건이 필요없는 경우에는
WHERE구를 생략하는데 이때ORDER BY구는FROM구의 뒤에 지정한다.
FROM 구 뒤에 ORDER BY 구를 지정하는 경우
SELECT 열명 FROM 테이블명 ORDER BY 열명
2. ORDER BY DESC로 내림차순으로 정렬하기
ORDER BY구에 지정한 열의 값에 따라 행의 순서가 바뀐다.- 기본적으로는 오름차순으로 정렬된다.
- 내림차순으로 정렬할 때는 열명 뒤에
DESC를 붙여 지정한다.
내림차순으로 정렬
SELECT 열명 FROM 테이블명 ORDER BY 열명 DESC
- 오름차순으로 정렬할 때는 내림차순과 달리 생략 가능하며
ASC로도 지정할 수 있다.
오름차순으로 정렬
SELECT 열명 FROM 테이블명 ORDER BY 열명 ASC
DESC는descendant(하강),ASC는ascendant(상승)의 약자이다.
DESC로 내림차순 정렬한다!
ASC로 오름차순 정렬한다!
ASC나DESC로 정렬방법을 지정하지 않은 경우에는ASC로 간주되며, 즉ORDER BY의 기본 정렬방법은 오름차순이다.
3. 대소관계
ORDER BY로 정렬할 때는 값의 대소관계가 중요하다.- 수치형 데이터라면 대소관계는 숫자의 크기로 판별하므로 이해하기 쉽다.
- 날짜시간형 데이터도 수치형 데이터와 마찬가지로 숫자 크기로 판별한다.
- 문자열형 데이터의 경우에는 알파벳이나 한글 자모음 배열순서를 사용하면 문자를 차례대로 나열할 수 있다.
- 알파벳, 한글 순이며 한글은 자음, 모음 순이다.
문자열형 데이터의 대소관계는 사전식 순서에 의해 결정된다!
사전식 순서에서 주의할 점
- 수치형과 문자열은 대소관계 계산 방법이 서로 다르다.
- 수치형은 수치형의 대소관계로, 문자열형은 사전식 순서로 비교한다.
- 문자열형 열에 숫자 데이터를 넣을 수 있다(숫자도 문자의 일종이므로 저장하는 데 아무런 문제가 되지 않는다).
- 하지만 문자열형 열에 숫자를 저장하면 문자로 인식되어 대소관계의 계산 방법이 달라지므로 정렬이나 비교 연산을 할 때는 이 점에 주의해야 한다.
수치형과 문자열형 데이터는 대소관계의 계산 방법이 다르다!
4. ORDER BY는 테이블에 영향을 주지 않는다.
ORDER BY를 이용해 행 순서를 바꿀 수 있다.- 하지만 이는 서버에서 클라이언트로 행 순서를 바꾸어 결과를 반환하는 것뿐, 저장장치에 저장된 데이터의 행 순서를 변경하는 것은 아닙니다.
SELECT명령은 데이터를 검색하는 명령이다. 이는 테이블의 데이터를 참조만 할 뿐이며 변경은 하지 않는다.