SQL 첫걸음- 9강

3장. 정렬과 연산

9강. 정렬- ORDER BY

ORDER BY

1
MySQL> SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명;
  • SELECT 명령에 ORDER BY구를 지정할 경우, 검색 결과의 행 순서를 바꿀 수 있다.
  • ORDER BY구를 지정하지 않으면 데이터베이스 내부에 저장된 순서대로 반환된다.
  • 언제나 정해진 순서의 결과값을 얻기 위해서는 ORDER BY구를 지정해야 한다.

1. ORDER BY로 검색 결과 정렬하기

  • 지정된 열의 값에 따라서 행의 순서가 변경된다.
  • 검색 조건이 필요없는 경우에는 WHERE구 생략한다.
    WHERE구가 없을 때, ORDER BY구는 FROM구 뒤에 지정한다.

WHERE구 없이 FROM구 뒤에 ORDER BY구를 지정하는 경우


2. DESC VS ASC

내림차순 정렬

1
MySQL> SELECT 열명 FROM 테이블명 ORDER BY 열명 DESC;

오름차순 정렬

1
MySQL>  SELECT 열명 FROM 테이블명 ORDER BY 열명 ASC;
  • DESC나 ASC를 지정하지 않고 생략시, 기본값인 ASC로 간주되어 오름차순으로 정렬된다.

3. 대소관계

대소관계 결정 기준

  • 수치형 데이터, 날짜시간형 데이터: 숫자 크기로 결정
  • 문자열형 데이터: 사전식 순서를 기준으로 결정
사전식 순서에서 주의할 점
  • 수치형과 문자열형 데이터는 대소관계 계산 방법이 다르다.
  • 데이터가 숫자값처럼 보이더라도 해당 열이 문자열형 데이터일 경우,

    대소관계를 사전식 순서로 비교하기 때문에 숫자 크기 순서대로 정렬되지 않는다.

    숫자값처럼 보이더라도 해당 열의 데이터 타입이 문자열형이라면 주의!


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

  • ORDER BY를 이용해서 행 순서를 바꿀 수 있는데,
  • 이 순서는 서버에서 클라이언트로 행 순서를 바꾸어 결과를 반환하는 것일 뿐이다.

  • ORDER BY는 SELECT 명령과 사용하는데, 이는 데이터를 검색하는 명령으로

    테이블의 데이터를 참조만하고 변경은 하지 않는다.

    데이터베이스에 저장된 데이터의 행 순서를 변경하는 게 아니다!