반갑습니다!
이번 포스트에서는 데이터 조회시
특정 컬럼을 기준으로 정렬하는 ORDER BY와
정렬의 기준인 오름차순(ASC), 내림차순(DESC)에 대해서
함께 알아보겠습니다 ^^

books 테이블에서 stock_quantity 컬럼의 값을 기준으로 한 번 정렬을 해보겠습니다

SQL문 구조는 다음과 같습니다
SELECT 조회대상컬럼 FROM 테이블이름 ORDER BY 컬럼이름;
상기 이미지를 보시면 stock_quantity 필드의 값을 기준으로
오름차순 정렬이 된 것을 확인하실 수 있겠습니다 ^^!

바로 앞전 이미지와 동일한 조회 결과입니다
ORDER BY 키워드는 정렬 대상 컬럼 외 아무런 조건을 추가하지 않으면
Default로 오름차순 정렬(Ascending Order)이 적용됩니다
물론 ASC 조건을 추가하셔도 마찬가지로 오름차순 정렬이 적용됩니다 ^^
그럼 내림차순 정렬을 하려면 어떻게 해야할까요?

ORDER BY 컬럼이름 ASC;와 같은 구조로,
정렬 조건의 대상이 되는 컬럼이름 뒤에 DESC를 덧붙여주시면 되겠습니다 ^^
그럼 Default 또는 ASC와는 달리
내림차순 정렬(Descending Order)이 적용되는 것을 확인할 수가 있습니다!
해당 필드의 데이터 유형이 INT, DOUBLE, FLOAT와 같은 숫자형일 때는
오름차순, 내림차순 정렬이 어떻게 적용될지 직관적으로 추측할 수 있겠습니다 ^^
그럼 과연 문자열에는 정렬 기준이 어떻게 될까요?
숫자가 먼저일까요? 문자가 먼저일까요?
문자 중에서는 소문자가 선순위를 가질까요? 대문자가 앞설까요? ^^

title 컬럼을 기준으로 내림차순 정렬을 하였습니다 ^^
숫자와 문자가 같이 있을 경우 숫자가 정렬상 우선순위를 갖는 것을 볼 수가 있겠고,
대문자보다 소문자가 선순위를 차지하는 것을 확인할 수가 있습니다!
그럼 DESC 조건으로 내림차순 정렬을 한다면,
상기 이미지와 대칭되는 결과가 도출되겠죠?

숫자 → 문자(소문자) → 문자(대문자)의 순서로 우선순위를 점유하므로,
내림차순 정렬시에는 정 반대로, 대문자가 가장 상단에 정렬되는 것을 확인할 수가 있습니다 ^^
이 순서는 문자열의 대소관계 파악시 '사전식 순서'를 따르기 때문입니다!
별도로 이미지를 첨부하진 않았지만,
하나의 컬럼에 숫자 1, 2와 문자 10, 11이 있다면 오름차순 정렬시 순서가 어떻게 될까요?
바로,
1 → 10 → 11 → 2의 순서로 정렬이 될 것입니다 ^^
그러니 해당 데이터가 숫자인지, 문자인지를 파악해야 헷갈리지 않겠죠?!
이번 포스트에서는 ORDER BY 키워드를 이용해서, 단일 컬럼을 기준으로 지정하여
데이터를 오름차순 또는 내림차순으로 정렬하는 내용에 대해 알아보았습니다
다음 포스트에서는 복수의 컬럼을 지정하여 정렬을 해보도록 하겠습니다 ^^
'MySQL > MySQL 기본 CRUD' 카테고리의 다른 글
[기본 CRUD] 6. LIMIT 키워드로 데이터 일부 갯수만 조회하기 (0) | 2024.08.07 |
---|---|
[기본 CRUD] 5-2. ORDER BY 키워드로 복수 컬럼에 대해 데이터 정렬하기 (0) | 2024.08.07 |
[기본 CRUD] 4. LIKE 키워드로 패턴 매칭에 의한 검색하기 (0) | 2024.08.07 |
[기본 CRUD] 3-2. WHERE 복합 조건으로 검색 조건 지정하기 (0) | 2024.08.07 |
[기본 CRUD] 3-1. WHERE 단일 조건으로 검색 조건 지정하기 (0) | 2024.08.07 |