웹개발 교육/Database
[24일] Databese (10) - 모조 칼럼
ewok
2022. 8. 29. 11:58
Oracle DMBS에서 제공해준다.
rownum 행 번호
select uname, address, rownum from tb_student;
rowid 행의 주소 값
select uname, address, rowid from tb_student;
줄번호에 별칭 부여하기
select hakno, uname, rownum as rnum from tb_student;
rownum 특징
--줄번호가 먼저 부여되고 정렬된다
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;
줄번호 1~3 사이는 조회가 가능한 반면, 4~6 사이는 조회가 불가능하다.
rownum을 활용한 페이징
- rownum은 모조 칼럼이므로 조건절에 직접 사용하지 말고, 실제 칼럼으로 인식 후 사용할 것을 추천
- rownum칼럼은 셀프 조인 후에 줄 번호 추가하고 조건절에 활용한다
문) 줄 번호(rownum)을 이용해서 줄 번호 4~6 조회
-- 1) 이름 순으로 조회 (줄 번호까지 같이 정렬)
select uname, hakno, address, rownum
from tb_student
order by uname;
이름 순으로 조회한 결과에 순서대로 번호를 부여하려면 다음과 그림과 같이 해야 한다.
먼저, 이름 순으로 정렬한 뒤 그것을 조인하여 rownum을 부여하면 된다.
-- 2) 1)의 결과를 셀프 조인하고 줄 번호를 추가
select uname, hakno, address, rownum as rnum
from (
select uname, hakno, address
from tb_student
order by uname
) AA;
-- 3) 2)의 결과를 BB테이블로 만들고, 줄 번호 4~6행 조회하시오
select uname, hakno, address, rnum
from (
select uname, hakno, address, rownum as rnum
from (
select uname, hakno, address
from tb_student
order by uname
) AA
) BB
where rnum>=4 and rnum<=6;
-- 4) 3)의 결과에서 테이블 별칭 (AA, BB) 생략하기
select *
from (
select uname, hakno, address, rownum as rnum
from (
select uname, hakno, address
from tb_student
order by uname
)
)
where rnum>=4 and rnum<=6;