ORDER BY란 무엇인가: 오름차순, 내림차순 쉽게 이해하기
SQL을 공부하다 보면 ORDER BY를 자주 보게 됩니다. 조회 결과는 잘 나오는데, 원하는 순서로 정렬되지 않아서 헷갈리는 경우가 많습니다. 결론부터 말하면 ORDER BY는 조회한 결과를 특정 기준으로 정렬하는 구문입니다. 이 글에서는 SQL 초보자와 SQLD 준비생이 헷갈리지 않도록 ORDER BY의 의미, 오름차순과 내림차순 차이, 예제, 자주 하는 실수까지 한 번에 정리해보겠습니다.
- ORDER BY가 왜 필요한지 헷갈리는 분
- ASC와 DESC 차이를 확실히 정리하고 싶은 분
- 조회 결과를 원하는 순서로 정렬하는 방법이 궁금한 분
- SQLD에서 ORDER BY 관련 문제를 자주 틀리는 분
ORDER BY란 무엇인가
ORDER BY는 조회 결과를 정렬하는 구문입니다.
SELECT문으로 데이터를 조회하면 결과는 나올 수 있지만, 그 순서가 항상 내가 원하는 순서라는 보장은 없습니다. 이때 특정 컬럼을 기준으로 오름차순 또는 내림차순 정렬하고 싶다면 ORDER BY를 사용합니다.
쉽게 말하면 ORDER BY는 “결과를 보기 좋은 순서로 다시 줄 세우는 것”입니다.
왜 ORDER BY가 필요할까
조회 결과는 나오는 것만으로 끝나지 않고, 보통은 의미 있는 순서로 보는 것이 중요합니다.
- 급여가 높은 순서대로 보고 싶을 때
- 최근 가입자 순으로 보고 싶을 때
- 이름 가나다순으로 보고 싶을 때
- 점수가 낮은 순서부터 보고 싶을 때
즉, ORDER BY는 데이터 조회 결과를 실제로 활용하기 쉽게 만드는 역할을 합니다.
오름차순과 내림차순 차이
ORDER BY에서는 보통 두 가지 정렬 방향을 사용합니다.
- ASC: 오름차순
- DESC: 내림차순
ASC는 작은 값에서 큰 값으로, 가나다순, 오래된 날짜에서 최신 날짜 방향으로 정렬한다고 생각하면 됩니다. DESC는 그 반대입니다.
| 정렬 방식 | 의미 | 예시 |
|---|---|---|
| ASC | 오름차순 | 1→10, A→Z, 오래된 날짜→최근 날짜 |
| DESC | 내림차순 | 10→1, Z→A, 최근 날짜→오래된 날짜 |
가장 기본적인 예제
직원 급여를 낮은 순서부터 보고 싶다면 아래처럼 쓸 수 있습니다.
SELECT name, salary
FROM employees
ORDER BY salary ASC;
반대로 급여가 높은 순서대로 보고 싶다면 DESC를 사용합니다.
SELECT name, salary
FROM employees
ORDER BY salary DESC;
ASC는 생략할 수 있다
SQL에서는 ASC가 기본값인 경우가 많기 때문에 생략해도 오름차순으로 동작합니다.
SELECT name, salary
FROM employees
ORDER BY salary;
위 쿼리는 보통 ORDER BY salary ASC와 같은 의미로 이해해도 됩니다.
여러 컬럼으로 정렬할 수도 있다
ORDER BY는 하나의 컬럼만이 아니라 여러 컬럼 기준으로도 정렬할 수 있습니다.
예를 들어 부서별로 묶고, 같은 부서 안에서는 급여가 높은 순서대로 보고 싶다면 아래처럼 쓸 수 있습니다.
SELECT department_id, name, salary
FROM employees
ORDER BY department_id ASC, salary DESC;
이 경우 먼저 department_id 기준으로 정렬하고, department_id가 같은 행들 안에서는 salary 기준으로 다시 정렬합니다.
ORDER BY는 언제 실행될까
ORDER BY는 보통 조회 결과가 만들어진 뒤 마지막에 적용되는 정렬 단계라고 이해하면 쉽습니다.
그래서 SQL 실행 순서 관점에서는 FROM, WHERE, GROUP BY, HAVING, SELECT 이후에 ORDER BY가 온다고 정리할 수 있습니다.
ORDER BY는 최종 결과를 보기 좋게 정렬하는 마지막 단계라고 기억하면 쉽습니다.
GROUP BY와 ORDER BY는 무엇이 다를까
GROUP BY는 같은 값끼리 묶는 구문이고, ORDER BY는 결과를 정렬하는 구문입니다.
둘 다 결과를 바꾸는 것처럼 보여서 헷갈릴 수 있지만 역할은 완전히 다릅니다.
- GROUP BY = 그룹을 만든다
- ORDER BY = 순서를 정한다
예를 들어 부서별 평균 급여를 구한 뒤, 평균 급여가 높은 부서 순으로 보고 싶다면 GROUP BY와 ORDER BY를 함께 사용할 수 있습니다.
SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
ORDER BY avg_salary DESC;
초보자가 자주 하는 실수
ORDER BY를 쓰지 않아도 항상 같은 순서로 나온다고 생각하는 것
ORDER BY가 없으면 결과 순서는 보장되지 않는다고 먼저 생각하는 것이 안전합니다.
ASC와 DESC 방향을 반대로 기억하는 것
ASC는 작은 것부터, DESC는 큰 것부터라고 기억하면 쉽습니다.
GROUP BY와 ORDER BY 역할을 헷갈리는 것
GROUP BY는 묶기, ORDER BY는 정렬이라고 구분하면 훨씬 명확해집니다.
비전공자는 이렇게 외우면 쉽다
- ASC = 작은 순서부터
- DESC = 큰 순서부터
- ORDER BY = 결과 줄 세우기
- GROUP BY는 묶기, ORDER BY는 정렬이라고 같이 외우면 쉽습니다.
핵심 요약
- ORDER BY는 조회 결과를 특정 기준으로 정렬하는 구문입니다.
- ASC는 오름차순, DESC는 내림차순입니다.
- 여러 컬럼 기준으로도 정렬할 수 있습니다.
- ORDER BY는 보통 SQL 실행 흐름에서 마지막 정렬 단계라고 이해하면 쉽습니다.
- GROUP BY와 ORDER BY는 역할이 다르므로 구분해서 기억해야 합니다.
FAQ
ORDER BY는 왜 필요한가요?
조회 결과를 원하는 기준과 순서로 보기 쉽게 정렬하기 위해 필요합니다.
ASC와 DESC 차이는 무엇인가요?
ASC는 오름차순, DESC는 내림차순입니다. 숫자, 문자, 날짜 모두 같은 개념으로 이해할 수 있습니다.
ASC는 생략해도 되나요?
보통은 가능합니다. 생략하면 오름차순으로 처리되는 경우가 많습니다.
ORDER BY 없이 조회하면 항상 같은 순서가 나오나요?
그렇게 보장된다고 생각하면 안 됩니다. 정렬이 중요하면 ORDER BY를 명시하는 것이 안전합니다.
SQLD에서도 ORDER BY가 자주 나오나요?
네. SQL 실행 순서, GROUP BY, 집계 결과 정렬과 함께 자주 나오는 기본 문법입니다.
'자격증 준비 > SQLD' 카테고리의 다른 글
| DISTINCT란 무엇인가: 중복 제거 쉽게 이해하기 (0) | 2026.03.15 |
|---|---|
| NULL이란 무엇인가: 0, 공백과 차이까지 쉽게 이해하기 (0) | 2026.03.15 |
| HAVING이란 무엇인가: WHERE와 차이까지 쉽게 이해하기 (0) | 2026.03.14 |
| GROUP BY란 무엇인가: SQL 초보자도 이해하는 그룹화 개념 정리 (0) | 2026.03.14 |
| 집계 함수란 무엇인가: COUNT, SUM, AVG 쉽게 이해하기 (0) | 2026.03.14 |