파게로그
ROWNUM과 ROWID 본문
ROWNUM
SELECT * FROM EMP WHERE ROWNUM <= 1;
- Oracle DB의 SELECT문 결과에 대해서 논리적인 일련번호를 부여함
- 조회되는 행 수를 제한할 때 많이 쓰임
- 화면에 데이터를 출력할 때 부여되는 논리적 순번
- ROWNUM을 사용해 페이지 단위 출력을 하고자 한다면 inline view를 사용해야 함
SELECT *
FROM (
SELECT ROWNUM list, ENAME FROM EMP
)
WHERE list <= 5;
- inline view를 사용하고 ROWNUM에 별칭을 부여하여 여러 건의 행 조회 가능
SELECT *
FROM (
SELECT ROWNUM list, ENAME FROM EMP
)
WHERE list BETWEEN 5 AND 10;
- ROWNUM과 BETWEEN을 활용하여 웹 페이지 조회를 구현할 수 있음
ROWID
SELECT ROWID, ENAME FROM EMP;
- Oracle DB 내에서 데이터를 구분할 수 있는 유일한 값
- SELECT문으로 확인 가능
- ROWID를 통해서 데이터가 어떤 데이터 파일, 어느 블록에 저장되어 있는지 알 수 있음
- ROWID의 구조
- 오브젝트 번호(길이: 1~6): 오브젝트 별로 유일한 값을 가지고 있으며, 해당 오브젝트가 속해있는 값
- 상대 파일 번호(길이: 7~9): tablespace에 속해있는 데이터 파일에 대한 상대 파일 번호
- 블록 번호(길이: 10~15): 데이터 파일 내부에서 어느 블록에 데이터가 있는지
- 데이터 번호(길이: 16~18): 데이터 블록에 데이터가 저장되어 있는 순서
* inline view
- SELECT문에서 FROM절에 사용되는 sub query
- 예시: SELECT * FROM (SELECT * FROM EMP) a;
'콤퓨타 왕기초 > SQLD/JDBC/Oracle DB' 카테고리의 다른 글
DCL(Data Control Language) (0) | 2021.03.18 |
---|---|
WITH 구문 (0) | 2021.03.18 |
DECODE와 CASE문 (0) | 2021.03.18 |
내장형 함수 (0) | 2021.03.18 |
SELECT문 실행 순서, 형 변환 (0) | 2021.03.18 |
Comments