Files
2021-12-13 21:23:43 +09:00

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
  • DESCdescendant(하강), ASCascendant(상승)의 약자이다.
DESC로 내림차순 정렬한다!
ASC로 오름차순 정렬한다!
  • ASCDESC로 정렬방법을 지정하지 않은 경우에는 ASC로 간주되며, 즉 ORDER BY의 기본 정렬방법은 오름차순이다.

3. 대소관계

  • ORDER BY로 정렬할 때는 값의 대소관계가 중요하다.
  • 수치형 데이터라면 대소관계는 숫자의 크기로 판별하므로 이해하기 쉽다.
  • 날짜시간형 데이터도 수치형 데이터와 마찬가지로 숫자 크기로 판별한다.
  • 문자열형 데이터의 경우에는 알파벳이나 한글 자모음 배열순서를 사용하면 문자를 차례대로 나열할 수 있다.
  • 알파벳, 한글 순이며 한글은 자음, 모음 순이다.
문자열형 데이터의 대소관계는 사전식 순서에 의해 결정된다!

사전식 순서에서 주의할 점

  • 수치형과 문자열은 대소관계 계산 방법이 서로 다르다.
  • 수치형은 수치형의 대소관계로, 문자열형은 사전식 순서로 비교한다.
  • 문자열형 열에 숫자 데이터를 넣을 수 있다(숫자도 문자의 일종이므로 저장하는 데 아무런 문제가 되지 않는다).
  • 하지만 문자열형 열에 숫자를 저장하면 문자로 인식되어 대소관계의 계산 방법이 달라지므로 정렬이나 비교 연산을 할 때는 이 점에 주의해야 한다.
수치형과 문자열형 데이터는 대소관계의 계산 방법이 다르다!

4. ORDER BY는 테이블에 영향을 주지 않는다.

  • ORDER BY를 이용해 행 순서를 바꿀 수 있다.
  • 하지만 이는 서버에서 클라이언트로 행 순서를 바꾸어 결과를 반환하는 것뿐, 저장장치에 저장된 데이터의 행 순서를 변경하는 것은 아닙니다.
  • SELECT 명령은 데이터를 검색하는 명령이다. 이는 테이블의 데이터를 참조만 할 뿐이며 변경은 하지 않는다.