순간을 기록으로

[MySQL] 'ORDER BY' 구를 이용하여 검색 결과 행 순서 정렬하기1 본문

Computer Science/Database

[MySQL] 'ORDER BY' 구를 이용하여 검색 결과 행 순서 정렬하기1

luminous13 2021. 11. 9. 22:10

어떤 데이터들을 조회하는데 특정 기준으로 정렬된 결과를 보고 싶을 때가 있습니다. 이럴 때에 'ORDER BY 열명'을 사용하면 됩니다.

 

SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명

 

테스트 데이터

 

CASE1. 모든 데이터를 나이 기준으로 오름차순 정렬하기

age를 기준으로 오름차순으로 정렬된 결과를 볼 수 있습니다.

 

CASE2.모든 데이터를 나이 기준으로 내림차순 정렬하기

 

내림차순으로 정렬하려면 'ODERBY 열명 DESC'를 사용하면 됩니다. 뒤에 DESC를 빼면 디폴트로 오름차순으로 정렬합니다.

 

주의할점

이렇게 데이터를 정렬하려면 데이터 끼리 대소관계를 비교할 수 있어야 합니다. 위의 age의 경우 열의 자료형이 정수형, 즉 숫자이기 때문에 자연스럽게 정렬을 이해 할 수 있습니다. 그렇다면 날짜시간형과 문자열형인 경우 정렬은 어떤 기준으로 되는 것인지 알아보겠습니다.

 

날짜시간형

날짜시간형은 다음과 같이 대소관계를 가집니다. 

 

1999년 < .. < 2013년 < 2014년. 즉 큰값 = 최근, 작은 값 = 이전으로 생각하면 됩니다.

 

문자열형

문자열형은 사전식 순서에 의해 결정됩니다. 한글의 경우 'ㄱ'이 'ㄴ'보다 우선됩니다. 알파벳의 경우 'a'가 'b'보다 우선시됩니다.

 

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

ORDER BY를 이용해 행 순서를 바꾸는 것은 어디까지나 결과를 반환할 때 그럴 뿐. 실제로 저장된 데이터 행 순서를 변경하는 것이 아님을 주의해야 합니다.

Comments