○ 모조칼럼 (의사칼럼, pseudo column)
- 모조칼럼, 의사칼럼 : 칼럼은 아니지만 실제 칼럼처럼 사용할 수 있는 칼럼
- 오라클 DBMS 전용
- rownum : 행 번호
- rowid : 행의 주소값
--행의 주소값
select uname, rowid from tb_student;
-- 줄번호
select hakno, uname, rownum from tb_student;
-- 줄번호에 별칭 부여하기
select hakno, uname, rownum as rnum from tb_student;
-- 줄번호가 먼저 부여되고 정렬된다
select hakno, uname, rownum as rnum from tb_student order by uname;
-- 줄번호 1~3사이 조회
select hakno, uname, rownum from tb_student
where rownum>=1 and rownum<=3;
-- 줄번호 4~6사이 조회 (조회 안됨)
select hakno, uname, rownum from tb_student
where rownum>=4 and rownum<=6;
○ rownum을 활용한 페이징
- rownum : 웹페이지 게시판 페이징이나 댓글더보기 등의 기능에서 활용
- 모조칼럼이므로 조건절에 직접 사용하지 않고, 실제 칼럼으로 인식 후 사용할 것을 추천
- 셀프조인 후에 줄번호를 추가하고 조건절에 활용
- 위에서 줄번호가 부여되고 정렬이 되는 것이나, 중간부터 조회가 안되는 문제를 해결할 수 있음
Q) 줄번호(rownum)을 이용해서 줄번호 4~6조회
--1) 이름 순으로 조회
--rownum이 먼저 붙고, 정렬되서 번호가 섞여있음
select uname, hakno, address, rownum from tb_student order by uname;
--2) 1)의 결과를 셀프조인하고, 줄번호를 추가
--정렬을 먼저해주고, 줄번호를 추가해서 번호가 원하는 대로 나옴
select uname, hakno, address, rownum
from(
select uname, hakno, address from tb_student order by uname
);
--3) 2)의 결과에 별칭(AA)을 추가하고, 줄번호 4~6행 조회
--
select uname, hakno, address, rnum
from(
select uname, hakno, address, rownum as rnum --rownum에 별칭을 안주면 오류
from(
select uname, hakno, address from tb_student order by uname
)
)AA --AA 별칭 생략가능
where rnum>=4 and rnum<=6;
'Backend > Oracle DB' 카테고리의 다른 글
17. CSV파일 Import (오라클DB로CSV파일 활용하기) (0) | 2022.05.22 |
---|---|
16. 학사관리 DB 관련 종합연습문제 (0) | 2022.05.21 |
14. 테이블 조인의 종류 (Inner Join, Left Join, Right Join, (+)기호) (0) | 2022.05.20 |
13. 학사관리 DB, 테이블 조인 (0) | 2022.05.19 |
12. 학사관리 DB 작업 (무결성) (0) | 2022.05.19 |
댓글