ASC
와 DESC
는 SELECT
문의 ORDER BY
절에서 사용되며, 조회된 결과의 정렬 순서를 지정하는 데 사용됩니다. SQLD 시험에서는 이 두 키워드의 기본적인 문법과 함께 NULL
값의 정렬 규칙이 자주 출제됩니다.
ORDER BY
절에서만 사용됩니다.ASC
는 오름차순(Ascending)을 의미하며, ORDER BY
의 기본값입니다. 따라서 ASC
는 생략할 수 있습니다.DESC
는 내림차순(Descending)을 의미하며, 반드시 명시해야 합니다.데이터 타입 | ASC (오름차순) | DESC (내림차순) |
---|---|---|
숫자 | 작은 값 → 큰 값 | 큰 값 → 작은 값 |
문자 | 사전 순 (A → Z) | 역순 (Z → A) |
날짜 | 과거 날짜 → 최근 날짜 | 최근 날짜 → 과거 날짜 |
ORDER BY
절에 여러 개의 컬럼을 지정하여 복합 정렬이 가능합니다.ORDER BY dept ASC, score DESC
dept
컬럼을 오름차순으로 먼저 정렬합니다.dept
값이 같은 행들에 대해서는 score
컬럼을 내림차순으로 정렬합니다.NULL 값은 '값이 없음'을 의미하므로, DBMS마다 정렬 순서가 다릅니다.
DBMS | ASC 정렬 시 | DESC 정렬 시 |
---|---|---|
Oracle | 가장 마지막에 위치 | 가장 먼저 위치 |
MySQL | 가장 먼저 위치 | 가장 마지막에 위치 |
NULL
정렬 규칙을 반드시 기억해야 합니다.ASC
는 ORDER BY
의 기본값이며, 생략 가능합니다.DESC
는 반드시 명시해야 합니다.ASC
정렬 시 NULL
은 맨 뒤, DESC
정렬 시 NULL
은 맨 앞에 위치합니다.1. 다음 중 ORDER BY
절의 기본 정렬 방식에 대한 설명으로 올바른 것은?
① 내림차순(DESC
)이다.
② 오름차순(ASC
)이며, ASC
는 반드시 명시해야 한다.
③ 오름차순(ASC
)이며, ASC
는 생략 가능하다.
④ 정렬 순서는 DBMS마다 기본값이 다르다.
2. 다중 정렬에 대한 설명으로 옳지 않은 것은?
① ORDER BY A, B
는 먼저 A를 정렬하고, A가 같은 경우 B를 정렬한다.
② ORDER BY A DESC, B ASC
는 A를 기준으로 내림차순 정렬하고, A가 같은 경우 B를 기준으로 오름차순 정렬한다.
③ 다중 정렬 시 가장 오른쪽에 있는 컬럼이 항상 최우선 순위를 가진다.
④ ORDER BY
절은 여러 컬럼을 조합하여 정렬할 수 있다.
3. 다음 중 NULL
처리에 대한 설명으로 틀린 것은? (Oracle 기준)
① ASC
정렬 시 NULL
은 맨 뒤에 온다.
② DESC
정렬 시 NULL
은 맨 앞에 온다.
③ NULLS LAST
옵션으로 DESC
정렬 시 NULL
을 맨 뒤로 보낼 수 있다.
④ NULL
값은 정렬의 대상이 될 수 없다.
4. 다음 보기 중 옳은 설명만 고른 것은?
ㄱ. ASC
는 반드시 명시해야 한다.
ㄴ. DESC
는 반드시 명시해야 한다.
ㄷ. ASC
는 기본값이므로 생략 가능하다.
① ㄱ
② ㄴ
③ ㄱ, ㄷ
④ ㄴ, ㄷ
ORDER BY
의 기본 정렬 방식은 오름차순(ASC
)이며, 기본값이므로 생략할 수 있습니다.NULL
은 정렬의 대상이 되며, DBMS에 따라 정렬 위치가 다릅니다. Oracle에서는 NULLS FIRST
와 NULLS LAST
옵션으로 NULL의 위치를 명시적으로 지정할 수 있습니다.DESC
는 내림차순을 지정하기 위해 반드시 명시해야 합니다. ASC
는 오름차순이 기본값이므로 생략할 수 있습니다.