この記事では、主に 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 何も見つかりませんでした、その理由は何ですか?、
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 ページング クエリの基本原則であり、皆様のお役に立てれば幸いです。 関連する推奨事項:
以上がOracle ページング クエリの基本原理の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。