이 글에서는 주로 Oracle 페이징 쿼리의 원리를 자세히 소개하고, 예제 테스트 데이터를 통해 구현 방법을 자세히 분석합니다. 이 글에서는 데이터 쿼리 원리와 페이징 구현 방법을 통해 Oracle 페이징 쿼리의 기본 지식을 자세히 분석합니다. 이 글의 내용은 다음과 같습니다.
이유 1
Oracle은 기본적으로 각 테이블에 대해 rowmun, rowid 필드를 생성합니다. 이 필드를 의사 열이라고 합니다.
1 테스트 테이블 만들기
CREATE TABLE TEST( ID NUMBER, NAME VARCHAR2(20) )
2 Insert 테스트 데이터
INSERT INTO TEST VALUES (1,'张三'); INSERT INTO TEST VALUES (2,'李四'); INSERT INTO TEST VALUES (3,'王五'); INSERT INTO TEST VALUES (4,'赵六'); INSERT INTO TEST VALUES (5,'郑七'); INSERT INTO TEST VALUES (6,'胡八'); INSERT INTO TEST VALUES (7,'刘九');
3 테이블 필드를 확인하고 내장 필드를 확인하세요.
select rowid,rownum,id,name from TEST;
4 Rowid는 일반적으로 내부적으로 물리적 데이터를 저장하는 데 사용되지 않습니다. 페이징과 관련된 행의 위치는 rownum입니다. 즉, 행 번호
two
1은 5개 미만의 행을 쿼리하고 4개의 결과를 쿼리합니다. 2보다 크고 5보다 작은 행
select rowid,rownum,id,name from test where rownum <5;
Discover 아무것도 발견되지 않았습니다. 이유는 무엇입니까?,
rownum의 특징은 다음과 같습니다. 1 ROWNUM은 작거나 작거나 같음에만 적용 가능합니다. 동일하다고 판단되면 1만 가능합니다.
2 ROWNUM은 Oracle 시스템 순차 할당입니다. 행 번호는 반환된 첫 번째 행에 1이 할당되고 두 번째 행에 2가 할당됩니다.
3 ROWNUM은 항상 1부터 시작합니다.
3 올바른 작성 방법: >를 사용할 수 없으므로 내부 쿼리를 사용하여 행 번호를 결과 집합으로 쿼리하고 외부 레이어의 내부 결과 집합을 사용하여 비교
select rownum,id,name from test where rownum>2 and rownum <5;
4 예를 들어 페이징을 수행하면 페이지당 3줄이 있고, 두 번째 페이지를 쿼리하려는 경우 4, 5, 6개 항목을 쿼리하는 것과 동일하며, 시작 라인 4 = (페이지 번호-1) * 각 페이지 길이 + 1, 끝 줄 6=페이지 번호 * 각 페이지 길이
select rownum,id,name from ( select rownum rn, u.* from test u where rownum<5) un where un.rn>2
5 마찬가지로 4개의 쿼리도 가장 일반적인 3-로 변경될 수 있습니다. 계층 구조
select rownum,id,name from ( select rownum rn , t.* from test t where rownum <=6) n where n.rn>=4
위 내용은 Oracle 페이징 쿼리의 기본 원칙입니다. 모든 사람에게 도움이 되기를 바랍니다.
php+oracle paging class_PHP 튜토리얼
oracle 페이징 쿼리 SQL 원칙 및 명령문
에 구현된 Oracle 페이징 함수 예제
위 내용은 Oracle 페이징 쿼리의 기본 원리에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!