1. ROWNUM 슈도 칼럼
1️⃣ 슈도(Pseudo Column) 칼럼
1) 슈도 칼럼
- 데이터베이스 시스템에서 제공하는 특별한 종류의 칼럼
- 실제로 존재하는 데이터 아님
- 가상의 칼럼을 만들어 쿼리에서 일반 칼럼처럼 사용 가능
- 데이터베이스 작업을 더 효율적으로 만들고, 특정 정보에 쉽게 접근할 수 있게 해주는 유용한 도구로 활용됨
2) 슈도 칼럼의 특징
- 시스템 생성
- 데이터베이스 시스템에 의해 자동으로 생성되고 관리됨
- 읽기 전용
- 대부분의 경우, 값 변경 불가
- 동적 값
- 쿼리 실행 시 동적으로 값 할당
3) 슈도 칼럼 (오라클)
ROWNUM- 쿼리 결과의 각 행에 순차적인 번호 부여
ROWID- 각 행의 고유 식별자
LEVEL- 계층적 쿼리에서 트리 레벨 표시
CURRVAL,NEXTVAL- 시퀀스 관련 작업에 사용됨
4) 슈도 칼럼 (다른 데이터베이스 시스템)
- SQL Server
@@ERROR,@@IDENTITY
- MySQL
FOUND_ROWS(),ROW_COUNT()
2️⃣ ROWNUM
1) ROWNUM
- 결과 집합에서 각 행에 고유한 번호 할당 (1부터 순차적으로 부여)
- 쿼리 실행 순서에 따라 부여되므로 결과 집합의 행 순서가 중요한 경우 사용 가능
- 특별한 형식 없고, 하나의 칼럼처럼 사용
2) ROWNUM 예
SELECT ROWNUM, EMPNO, ENAME, SAL
FROM (
SELECT EMPNO, ENAME, SAL
FROM EMP
ORDER BY SAL DESC
);ROWNUM | EMPNO | ENAME | SAL |
1 | 7839 | KING | 5000 |
2 | 7788 | SCOTT | 3000 |
3 | 7902 | FORD | 3000 |
4 | 7566 | JONES | 2975 |
5 | 7698 | BLAKE | 2850 |
… | … | … | … |
2. TOP 절
1️⃣ SQL Server에서 사용하는 TOP 절
1) TOP 절
- SQL Server에서 결과 집합의 상위 N개의 행을 반환하는 데 사용되는 절
- 결과 집합의 크기를 제한
- 쿼리의 성능 최적화
- 특정 수의 행만 선택할 때 매우 유용함
2) TOP 절의 예
SELECT TOP (3) EMPNO, ENAME, SAL
FROM EMP
WHERE DEPTNO = 20
ORDER BY SAL DESC;EMPNO | ENAME | SAL |
7902 | FORD | 3000 |
7788 | SCOTT | 3000 |
7566 | JONES | 2975 |
2️⃣ 오라클에서 사용하는 ROW LIMITING 절
1) ROW LIMITING 절
- 오라클에서 결과 집합의 행 수를 제한하는 데 사용됨
- 데이터베이스 쿼리의 효율성 높이는 데 도움
FETCH FIRST와OFFSET절을 사용하여 결과 집합의 상위 N개의 행을 선택하거나 특정 위치에서부터 N개의 행 선택 가능
2) FETCH FIRST를 사용한 ROW LIMITING 절의 예
SELECT EMPNO, ENAME, SAL
FROM EMP
ORDER BY SAL DESC
FETCH FIRST 5 ROWS ONLY; // 상위 5개 행 선택하여 반환EMPNO | ENAME | SAL |
7839 | KING | 5000 |
7902 | FORD | 3000 |
7788 | SCOTT | 3000 |
7566 | JONES | 2975 |
7698 | BLAKE | 2850 |
2) OFFSET를 사용한 ROW LIMITING 절의 예
SELECT EMPNO, ENAME, SAL
FROM EMP
ORDER BY SAL DESC
OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY; // 상위 5개 행 건너뛰고, 다음 5개 행 선택하여 반환EMPNO | ENAME | SAL |
7782 | CLARK | 2450 |
7499 | ALLEN | 1600 |
7844 | TURNER | 1500 |
7934 | MILLER | 1300 |
7654 | MARTIN | 1250 |
Share article