데이터베이스 연구실.log

정렬과 중복 제거

ORDER BY로 결과를 오름차순, 내림차순으로 정렬하는 방법과 NULL의 정렬 위치, 여러 컬럼 정렬, DISTINCT로 중복 행을 없애는 방법

ORDER BYASCDESCNULLS FIRSTNULLS LASTDISTINCT

#핵심 요약

ORDER BY 컬럼 ASC는 낮은 값부터(오름차순), DESC는 높은 값부터(내림차순) 출력함

SELECT 절에 없는 컬럼으로도 정렬할 수 있고, 컬럼 순서 번호로도 정렬할 수 있음

NULLS LAST, NULLS FIRST로 NULL이 나오는 위치를 정함

SELECT DISTINCT 컬럼은 중복 행을 없앰
실습에서는 UNIQUE를 써도 된다고 적었음

#개념과 동작 원리

정렬 옵션:

옵션 뜻
ASC 낮은 값부터 높은 값 순(오름차순)
DESC 높은 값부터 낮은 값 순(내림차순)
NULLS FIRST / NULLS LAST NULL을 맨 앞 또는 맨 뒤에

정렬 방향 기본값은 ASC이며 NULL은 ASC에서 마지막, DESC에서 처음에 위치함

#주요 용어와 구성 요소

DISTINCT와 UNIQUE는 같은 뜻이며 선택한 모든 식의 값 조합을 기준으로 중복을 제거함

#필수 명령어 또는 SQL

항목 실행 조건
작업 대상 emp의 급여, 입사일, 부서, 커미션 정렬과 직무 중복 제거
필요 권한 대상 테이블 조회 권한이 있는 계정
바꿀 입력값 정렬 열, 방향, NULL 위치, 중복 제거할 열 조합
결과 해석 과제 결과와 현재 테이블의 출력은 기재 없음
SQL Developer 또는 SQL*Plus조회만 함
SELECT ename, sal
  FROM emp
 ORDER BY sal ASC;

SELECT ename, sal
  FROM emp
 ORDER BY hiredate ASC;

SELECT ename, deptno, sal
  FROM emp
 ORDER BY deptno ASC, sal DESC;

SELECT ename, comm
  FROM emp
 ORDER BY comm DESC NULLS LAST;

결과 해석: 세 번째 문장은 부서번호 오름차순으로 먼저 정렬하고, 같은 부서 안에서 월급 내림차순으로 정렬함
네 번째 문장은 커미션이 높은 사원부터 출력하고 NULL은 맨 뒤에 둠

SQL Developer 또는 SQL*Plus조회만 함
SELECT DISTINCT job
  FROM emp;

결과 해석:

실습에서는 공공데이터 테이블에서 시군구명, 법정동명을 중복 없이 출력하고 정렬하는 문제를 냈음
답은 기재 없음

#구문과 옵션 설명

DISTINCT 조회의 ORDER BY에는 SELECT 목록에 없는 열을 사용할 수 없음
여러 정렬 열은 앞선 열의 값이 같은 행에 다음 정렬 기준을 적용함

#사용 조건과 주의사항

위에서 몇 건만 자르는 FETCH FIRST와 ROWNUM은 조회 행 수 제한에 있음

실습에서는 정렬 문제로 CSV 데이터를 테이블로 적재하는 과제를 냈음

조회 결과의 순서를 정하려면 ORDER BY가 필요함
DISTINCT는 중복 제거 기능임

SEO_HKabsumveritas@gmail.comBuilt with Claude Code & Codex

마지막 갱신 개인 학습 기록이며 운영 환경 적용 전 공식 문서 확인 필요

두 글자 이상 입력, 위아래 화살표로 이동하고 Enter로 열기