파게로그

ROWNUM과 ROWID 본문

콤퓨타 왕기초/SQLD/JDBC/Oracle DB

ROWNUM과 ROWID

파게 2021. 3. 18. 16:46

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