>  기사  >  데이터 베이스  >  오라클에서 페이지 매김하는 방법

오라클에서 페이지 매김하는 방법

PHPz
PHPz원래의
2023-05-12 09:23:0614722검색

Oracle은 SQL 언어 표준을 완벽하게 지원하는 널리 사용되는 데이터베이스 관리 시스템입니다. 많은 시나리오에서 데이터 관리 및 보기를 용이하게 하기 위해 페이지에 쿼리 결과를 표시해야 합니다. 다음으로 이 기사에서는 Oracle이 페이징 작업을 수행하는 방법을 소개합니다.

1. 페이징에 ROWNUM 사용

Oracle은 반환된 결과 집합의 각 행을 고유한 값으로 식별할 수 있는 ROWNUM 함수를 제공하며, 값의 개수는 1부터 순차적으로 증가합니다. 이 함수는 다음과 같은 특징을 가지고 있습니다.

  1. 반환 결과에는 데이터 행의 행 번호를 기록하는 데 사용되는 ROWNUM 열이 포함됩니다.
  2. ROWNUM의 계산 규칙은 사용자가 지정한 WHERE 조건 및 ORDER BY 정렬 후 조건에 맞는 데이터의 처음 N행이 반환될 때 계산을 시작하는 것입니다.
  3. 하나의 값 확인만 수행하고 정규화된 레코드 행을 반환할 수 있으며 지속적인 쿼리 페이징 작업에는 사용할 수 없습니다.

그런 다음 ROWNUM 함수를 사용하여 데이터 페이징 작업을 수행할 수 있습니다. 구체적인 구현 단계는 다음과 같습니다.

  1. 쿼리 SQL 문을 작성하고 페이징해야 하는 데이터 결과 집합을 지정합니다.
  2. 쿼리 결과 집합을 기반으로 ROWNUM 함수를 사용하여 쿼리할 행 수와 시작 행 수를 지정합니다.

예:

SELECT FROM (SELECT A., ROWNUM RN FROM (SELECT * FROM user_data ORDER BY user_id) A WHERE ROWNUM <= 20) WHERE RN >= 1;

위의 SQL에서 명령문, 하위 쿼리 명령문을 사용하여 user_data 테이블의 모든 데이터를 쿼리하고 user_id 필드에 따라 정렬합니다. 마지막으로 쿼리 결과 세트를 기반으로 ROWNUM 함수를 사용하고 쿼리 결과 세트에 반환되는 행 수를 20개 행으로 제한합니다. 위의 SQL문을 사용한 결과는 1행부터 20행까지의 데이터 레코드이다.

2. 페이징에 OFFSET...FETCH 사용

ROWNUM 페이징 방법의 한계를 고려하여 Oracle은 버전 12c부터 새로운 페이징 방법, 즉 OFFSET FETCH 삽입 구문을 제공합니다. ROWNUM 함수와 비교하여 OFFSET FETCH 구문의 특징은

  1. 라인 번호에 의존하지 않고 처리 순서 값(OFFSET은 오프셋을 나타냄)과 LIMIT 값(FETCH는 획득을 나타냄)에 의해 지정됩니다. ON. 행 수) 결과 세트를 가져옵니다.
  2. 페이지가 매겨진 데이터를 지속적으로 쿼리할 수 있어 대용량 데이터에 적합합니다.
  3. OFFSET FETCH 구문을 사용한 쿼리 결과는 WHERE 및 ORDER BY 문의 영향을 받지 않습니다.

구체적인 사용법은 다음과 같습니다.

SELECT * FROM user_data ORDER BY user_id OFFSET 0 ROWS FETCH NEXT 20 ROWS ONLY;

위의 SQL 문에서 OFFSET 0 ROWS FETCH NEXT 20 ROWS ONLY 구문은 지정된 오프셋은 라인 0이며, 20라인의 데이터 레코드를 얻습니다.

요약:

Oracle은 ROWNUM 함수와 OFFSET FETCH 구문이라는 두 가지 페이징 데이터 쿼리 방법을 제공합니다. ROWNUM 함수는 데이터의 양이 적고 페이징 작업을 한 번만 수행하면 되는 상황에 적합합니다. OFFSET FETCH 구문은 데이터 양이 많고 연속적으로 여러 페이징을 쿼리해야 하는 상황에 적합합니다.

위 내용은 오라클에서 페이지 매김하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:오라클 삭제 연결다음 기사:오라클 삭제 연결