ASC / DESC 개념 정리

TJK·2025년 8월 22일
0

ASC / DESC 개념 정리

ASCDESCSELECT 문의 ORDER BY 절에서 사용되며, 조회된 결과의 정렬 순서를 지정하는 데 사용됩니다. SQLD 시험에서는 이 두 키워드의 기본적인 문법과 함께 NULL 값의 정렬 규칙이 자주 출제됩니다.


1. ASC / DESC 기본 개념

핵심 개념 (★★★★★)

  • ORDER BY에서만 사용됩니다.
  • ASC오름차순(Ascending)을 의미하며, ORDER BY기본값입니다. 따라서 ASC는 생략할 수 있습니다.
  • DESC내림차순(Descending)을 의미하며, 반드시 명시해야 합니다.

2. 정렬 순서 규칙

데이터 타입ASC (오름차순)DESC (내림차순)
숫자작은 값 → 큰 값큰 값 → 작은 값
문자사전 순 (A → Z)역순 (Z → A)
날짜과거 날짜 → 최근 날짜최근 날짜 → 과거 날짜

3. 다중 컬럼 정렬

핵심 개념 (★★★★★)

  • ORDER BY 절에 여러 개의 컬럼을 지정하여 복합 정렬이 가능합니다.
  • 정렬의 우선순위는 왼쪽에 있는 컬럼이 가장 높습니다.
  • 예시: ORDER BY dept ASC, score DESC
    • dept 컬럼을 오름차순으로 먼저 정렬합니다.
    • dept 값이 같은 행들에 대해서는 score 컬럼을 내림차순으로 정렬합니다.

4. NULL 값 정렬 규칙 (SQLD 함정 포인트)

핵심 개념 (★★★★★)

NULL 값은 '값이 없음'을 의미하므로, DBMS마다 정렬 순서가 다릅니다.

DBMSASC 정렬 시DESC 정렬 시
Oracle가장 마지막에 위치가장 먼저 위치
MySQL가장 먼저 위치가장 마지막에 위치
  • SQLD 시험은 Oracle 기준으로 출제되는 경우가 많으므로, Oracle의 NULL 정렬 규칙을 반드시 기억해야 합니다.

5. SQLD 시험 핵심 포인트

  • ASCORDER BY기본값이며, 생략 가능합니다.
  • DESC반드시 명시해야 합니다.
  • 다중 정렬은 왼쪽 컬럼부터 순서대로 우선순위를 가집니다.
  • Oracle에서는 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는 기본값이므로 생략 가능하다.

① ㄱ
② ㄴ
③ ㄱ, ㄷ
④ ㄴ, ㄷ


정답 및 해설

  • 문제 1 정답: ③
    • 해설: ORDER BY의 기본 정렬 방식은 오름차순(ASC)이며, 기본값이므로 생략할 수 있습니다.
  • 문제 2 정답: ③
    • 해설: 다중 정렬 시 우선순위는 가장 왼쪽에 있는 컬럼부터 적용됩니다.
  • 문제 3 정답: ④
    • 해설: NULL은 정렬의 대상이 되며, DBMS에 따라 정렬 위치가 다릅니다. Oracle에서는 NULLS FIRSTNULLS LAST 옵션으로 NULL의 위치를 명시적으로 지정할 수 있습니다.
  • 문제 4 정답: ④
    • 해설: DESC는 내림차순을 지정하기 위해 반드시 명시해야 합니다. ASC는 오름차순이 기본값이므로 생략할 수 있습니다.
profile
Hello world!

0개의 댓글