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;
'웹개발 교육 > Database' 카테고리의 다른 글
[24일] Database (12) - CSV파일 변환 (0) | 2022.08.29 |
---|---|
[24일] Database (11) - 종합연습문제 (0) | 2022.08.29 |
[23일] Database (9) - 테이블 조인(left join, right join) (0) | 2022.08.26 |
[23일] Database (8) - 테이블 조인(inner join) (0) | 2022.08.26 |
[22일] Database (7) - 학사관리 (0) | 2022.08.25 |
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;
'웹개발 교육 > Database' 카테고리의 다른 글
[24일] Database (12) - CSV파일 변환 (0) | 2022.08.29 |
---|---|
[24일] Database (11) - 종합연습문제 (0) | 2022.08.29 |
[23일] Database (9) - 테이블 조인(left join, right join) (0) | 2022.08.26 |
[23일] Database (8) - 테이블 조인(inner join) (0) | 2022.08.26 |
[22일] Database (7) - 학사관리 (0) | 2022.08.25 |