ホームページ  >  記事  >  バックエンド開発  >  Oracle ページング クエリの基本原理の詳細な説明

Oracle ページング クエリの基本原理の詳細な説明

小云云
小云云オリジナル
2017-12-06 10:07:242119ブラウズ

この記事では、主に Oracle ページング クエリの原理を詳細に紹介し、サンプル テスト データから実装方法を詳細に分析します。この記事では、データ クエリの原理とページングの実装方法から Oracle ページング クエリの基礎知識を詳細に分析します。この記事の内容は次のとおりです:

理由 1

Oracle はデフォルトで各テーブルの rowmun、rowid フィールドを生成します。これらのフィールドは疑似列と呼ばれます

1 テストテーブルを作成します


2 挿入します。テストデータ

CREATE TABLE TEST(
ID NUMBER,
NAME VARCHAR2(20)
)


3 テーブルのフィールドをチェックし、組み込みフィールドを確認します

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,'刘九');



4 通常、Oracle は内部で物理データを格納するために使用されません。ページングに関連するものは rownum です。つまり、行番号

1 は 5 未満の行をクエリし、4 つの結果をクエリします

select rowid,rownum,id,name from TEST;


2 をクエリします。 2 より大きく 5 より小さい行

select rowid,rownum,id,name from test where rownum <5;

Discover 何も見つかりませんでした、その理由は何ですか?、

rownum には次の特性があります:


1 ROWNUM は以下にのみ適用されます。等しいと判断された場合は 1 のみになります。

2 ROWNUM は Oracle システムの順次割り当て行の番号で、返される最初の行には 1 が割り当てられ、2 番目の行には 2 が割り当てられます。

3 ROWNUM は常に 1 から始まります

4 最初のデータ行番号が 1 であり、一致しません>2 の条件が満たされる場合、最初の行が削除され、前の 2 行目が新しい最初の行になります. これが最後の行まで続くと条件が満たされなくなり、データが一つも見つかりません。

3 正しい書き方: > は使用できないため、内部クエリを使用して結果セットとして行番号をクエリし、比較には外部レイヤーの内部結果セットを使用します

select rownum,id,name from test where rownum>2 and rownum <5;


4 たとえば、ページングが実行される場合、1 ページあたり 3 行があり、2 ページ目をクエリする場合、行 4 = (page数値-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 ページング関数の例

php+oracle paging class_PHP チュートリアル

oracle paging クエリ SQL の原則とステートメント

以上がOracle ページング クエリの基本原理の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。