데이터베이스에서 조회한 결과를 원하는 기준에 따라 정렬하려면 ORDER BY 절을 사용합니다. ORDER BY는 지정한 열(컬럼)의 값을 기준으로 행을 오름차순 또는 내림차순으로 정렬해 주므로, 데이터를 의미 있는 순서로 확인할 때 필수적인 기능입니다.
예시 테이블 준비
다음과 같은 'Student' 테이블이 있다고 가정해 보겠습니다.
mysql> Select * from Student; +--------+--------+--------+ | Name | RollNo | Grade | +--------+--------+--------+ | Gaurav | 100 | B.tech | | Aarav | 150 | M.SC | | Aryan | 165 | M.tech | +--------+--------+--------+ 3 rows in set (0.00 sec)
이름(Name) 기준으로 정렬하기
아래 쿼리는 'Name' 열을 기준으로 테이블을 정렬합니다. 별도의 옵션을 지정하지 않으면 기본값인 오름차순(ASC)으로 정렬됩니다.
mysql> Select * from student order by name; +--------+--------+--------+ | Name | RollNo | Grade | +--------+--------+--------+ | Aarav | 150 | M.SC | | Aryan | 165 | M.tech | | Gaurav | 100 | B.tech | +--------+--------+--------+ 3 rows in set (0.00 sec)
결과를 보면 이름이 알파벳 순서(Aarav → Aryan → Gaurav)로 정렬된 것을 확인할 수 있습니다.
학점(Grade) 기준으로 정렬하기
마찬가지로 'Grade' 열을 기준으로도 정렬할 수 있습니다.
mysql> Select * from student order by Grade; +--------+--------+--------+ | Name | RollNo | Grade | +--------+--------+--------+ | Gaurav | 100 | B.tech | | Aarav | 150 | M.SC | | Aryan | 165 | M.tech | +--------+--------+--------+ 3 rows in set (0.00 sec)
ORDER BY 사용 시 참고 사항
- 오름차순 / 내림차순 지정: ASC(오름차순)와 DESC(내림차순) 키워드를 사용해 정렬 방향을 명시적으로 지정할 수 있습니다. 예: ORDER BY name DESC;
- 여러 열 기준 정렬: 쉼표로 구분하여 여러 열을 지정하면 첫 번째 열 값이 같을 경우 두 번째 열 기준으로 정렬됩니다.
- 성능 고려: 대용량 테이블에서 자주 사용하는 정렬 조건에는 인덱스를 추가하면 조회 성능을 크게 향상시킬 수 있습니다.
이처럼 ORDER BY 절 하나만으로도 결과 집합을 다양한 기준으로 손쉽게 정렬할 수 있어, 보고서 작성이나 데이터 분석 시 매우 유용하게 활용됩니다.