oracle分页查询sql原理与语句

Jun 07, 2016 pm 05:46 PM
ページングクエリ

很多朋友使用多了mysql limit进行分页到了oracle中就不知道如何写分页了,其实oracle分页与mssql分页很像的,下面我来给大家介绍oracle分页语句。

很多朋友使用多了mysql limit进行分页到了oracle中就不知道如何写分页了,其实oracle分页与mssql分页很像的,下面我来给大家介绍oracle分页语句。

最简单使用方法

 代码如下 复制代码

t2.*
from (select rownum r,t1.* from youtable t1 where rownum) t2
where t2.r>?

小于最大的,大于最小的,就是你需要的条数.如果你取40-50条之间的

查询格式:

 代码如下 复制代码

SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM )
WHERE RN >= 21

其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM = 21控制分页查询的每页的范围。
上面给出的这个分页查询语句,在大多数情况拥有较高的效率。分页的目的就是控制输出结果集大小,将结果尽快的返回。在上面的分页查询语句中,这种考虑主要体现在WHERE ROWNUM 选择第21到40条记录存在两种方法,一种是上面例子中展示的在查询的第二层通过ROWNUM

 代码如下 复制代码

SELECT * FROM

(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
)
WHERE RN BETWEEN 21 AND 40

后来发现数据越大就查询越慢了,后来得出一些测试结果分享给大家。

--1:无ORDER BY排序的写法。(效率最高)
--(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!)

 代码如下 复制代码
SELECT *
  FROM (Select ROWNUM AS ROWNO, T.*
           from k_task T
          where Flight_date between to_date('20060501', 'yyyymmdd') and
                to_date('20060731', 'yyyymmdd')
            AND ROWNUM WHERE TABLE_ALIAS.ROWNO >= 10;

--2:有ORDER BY排序的写法。(效率最高)
--(经过测试,此方法随着查询范围的扩大,速度也会越来越慢哦!)

 代码如下 复制代码
SELECT *
  FROM (SELECT TT.*, ROWNUM AS ROWNO
           FROM (Select t.*
                    from k_task T
                   where flight_date between to_date('20060501', 'yyyymmdd') and
                         to_date('20060531', 'yyyymmdd')
                   ORDER BY FACT_UP_TIME, flight_no) TT
          WHERE ROWNUM where TABLE_ALIAS.rowno >= 10;

--3:无ORDER BY排序的写法。(建议使用方法1代替)
--(此方法随着查询数据量的扩张,速度会越来越慢哦!)

 代码如下 复制代码
SELECT *
  FROM (Select ROWNUM AS ROWNO, T.*
           from k_task T
          where Flight_date between to_date('20060501', 'yyyymmdd') and
                to_date('20060731', 'yyyymmdd')) TABLE_ALIAS
WHERE TABLE_ALIAS.ROWNO    AND TABLE_ALIAS.ROWNO >= 10;
--TABLE_ALIAS.ROWNO  between 10 and 100;

--4:有ORDER BY排序的写法.(建议使用方法2代替)
--(此方法随着查询范围的扩大,速度会越来越慢哦!)

 代码如下 复制代码
SELECT *
  FROM (SELECT TT.*, ROWNUM AS ROWNO
           FROM (Select *
                    from k_task T
                   where flight_date between to_date('20060501', 'yyyymmdd') and
                         to_date('20060531', 'yyyymmdd')
                   ORDER BY FACT_UP_TIME, flight_no) TT) TABLE_ALIAS
where TABLE_ALIAS.rowno BETWEEN 10 AND 20;


--5另类语法。(有ORDER BY写法)
--(语法风格与传统的SQL语法不同,不方便阅读与理解,为规范与统一标准,不推荐使用。)

 代码如下 复制代码
With partdata as(
  SELECT ROWNUM AS ROWNO, TT.*  FROM (Select *
                  from k_task T
                 where flight_date between to_date('20060501', 'yyyymmdd') and
                       to_date('20060531', 'yyyymmdd')
                 ORDER BY FACT_UP_TIME, flight_no) TT
   WHERE ROWNUM     Select * from partdata where rowno >= 10;

--6另类语法 。(无ORDER BY写法)

 代码如下 复制代码

With partdata as(
  Select ROWNUM AS ROWNO, T.*
    From K_task T
   where Flight_date between to_date('20060501', 'yyyymmdd') and
         To_date('20060531', 'yyyymmdd')
     AND ROWNUM     Select * from partdata where Rowno >= 10;   

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP データベース接続を使用してページング クエリを実装する方法 PHP データベース接続を使用してページング クエリを実装する方法 Sep 08, 2023 pm 02:28 PM

PHP データベース接続を使用してページング クエリを実装する方法 Web アプリケーションを開発する場合、データベースにクエリを実行してページング表示を実行することがよくあります。一般的に使用されるサーバー側スクリプト言語として、PHP には強力なデータベース接続機能があり、ページング クエリを簡単に実装できます。この記事では、PHP データベース接続を使用してページング クエリを実装する方法を詳しく紹介し、対応するコード例を添付します。データベースの準備 開始する前に、クエリ対象のデータを含むデータベースを準備する必要があります。ここでは MySQL データベースを例として取り上げます。

PHP と PDO: ページング クエリを実行してデータを表示する方法 PHP と PDO: ページング クエリを実行してデータを表示する方法 Jul 29, 2023 pm 04:10 PM

PHP と PDO: ページ内のデータをクエリして表示する方法 Web アプリケーションを開発する場合、ページ内のデータをクエリして表示することは非常に一般的な要件です。ページングにより、一度に一定量のデータを表示できるため、ページの読み込み速度とユーザー エクスペリエンスが向上します。 PHP では、PHP データ オブジェクト (PDO) ライブラリを使用して、ページング クエリとデータの表示の機能を簡単に実現できます。この記事では、PHP で PDO を使用してページごとにデータをクエリおよび表示する方法と、対応するコード例を紹介します。 1. データベースとデータテーブルを作成する

Go 言語を使用して高パフォーマンスの MySQL データ ページング クエリを作成する方法 Go 言語を使用して高パフォーマンスの MySQL データ ページング クエリを作成する方法 Jun 17, 2023 am 09:09 AM

インターネットの急速な発展に伴い、データ処理はエンタープライズ アプリケーション開発における重要なスキルになりました。 MySQL データベースは、多くのアプリケーションで最も一般的に使用されるデータ ストアの 1 つです。 MySQL では、データ ページング クエリは一般的なデータ取得操作です。この記事では、Go 言語を使用して高パフォーマンスの MySQL データ ページング クエリを実装する方法を紹介します。 1. データページングクエリとは何ですか?データ ページング クエリは、一般的に使用されるデータ取得テクノロジであり、ユーザーは一度にすべてを読み込むことなく、ページ上の少量のデータのみを参照できます。

ThinkPHP6 で MySQL を使用してページング クエリを実行する方法 ThinkPHP6 で MySQL を使用してページング クエリを実行する方法 Jun 20, 2023 pm 02:01 PM

インターネットの急速な発展に伴い、Web アプリケーションの開発はますます複雑になっています。ページング クエリは、Web アプリケーションの一般的な機能の 1 つです。 ThinkPHP6 は、開発者がアプリケーションを迅速に開発できるようにする Web フレームワークです。この記事では、ThinkPHP6 で MySQL を使用してページ分割されたクエリを実行する方法について説明します。まず、ThinkPHP6 でデータベースを作成する必要があります。 MySQL でデータベースを作成するステートメントは次のとおりです。 CREATEDATABASE

ページ分割されたクエリのために PHP で MongoDB を使用する方法 ページ分割されたクエリのために PHP で MongoDB を使用する方法 Jul 07, 2023 pm 09:28 PM

PHP がページ分割されたクエリに MongoDB を使用する方法の概要: MongoDB は大量のドキュメント データを保存するためによく使用される非リレーショナル データベースですが、PHP は一般的なサーバーサイド スクリプト言語です。この記事では、PHPを使用してMongoDBに接続し、ページングクエリ機能を実装する方法を紹介します。ステップ 1: MongoDB 拡張機能をインストールする. PHP で MongoDB を操作するには、MongoDB 拡張機能をインストールする必要があります。 MongoDB 拡張機能は、次のコマンドを使用してインストールできます。 p

PHP および Oracle データベースのページング クエリ スキル PHP および Oracle データベースのページング クエリ スキル Jul 11, 2023 pm 11:09 PM

PHP および Oracle データベースのページング クエリ手法 動的 Web ページを開発する場合、大量のデータを表示する必要がある場合は、ページング クエリを実行する必要があります。ページ分割されたクエリは、ユーザーが簡単に参照して移動できるように、データを小さなページに分割する手法です。この記事では、PHP と Oracle データベースを使用してページ分割されたクエリを実装する方法について説明し、関連するコード例を示します。 1. 準備 開始する前に、PHP と Oracle データベースがインストールおよび設定されていることを確認する必要があります。まだなら

thinkormを使ってページングクエリ機能を簡単に実装する方法 thinkormを使ってページングクエリ機能を簡単に実装する方法 Jul 31, 2023 pm 10:41 PM

thinkorm を使用してページング クエリ機能を簡単に実装する方法の概要: Web サイトやアプリケーションを開発する場合、ページ上にデータの一部を表示し、ページめくり機能を提供するために、データベース内のデータに対してページング クエリを実行する必要があることがよくあります。 。この記事では、thinkorm フレームワークを使用してページング クエリ機能を簡単に実装する方法を紹介し、関連するコード例を示します。ステップ 1: thinkorm をインストールする まず、プロジェクトに thinkorm フレームワークをインストールする必要があります。次のコマンドを使用してインストールできます。

MySql ページング クエリ: 大規模なデータベースにおけるページングのパフォーマンスの問題に対処する方法 MySql ページング クエリ: 大規模なデータベースにおけるページングのパフォーマンスの問題に対処する方法 Jun 15, 2023 pm 03:28 PM

最新のアプリケーションでは、ほとんどのデータをページに表示する必要があります。アプリケーションが大量のデータを処理する必要がある場合、サーバーとデータベースに負荷がかかり、クエリに時間がかかるようになります。 Mysql は現在最も人気のあるリレーショナル データベースの 1 つであり、この記事では Mysql ページング クエリのパフォーマンスを最適化する方法について説明します。ページングの原理 最適化を始める前に、まずページングの原理を理解する必要があります。ページング クエリの主な原理は、テーブル データを複数のページに分割し、データを 1 つずつクエリすることです。たとえば、必要な場合は、

See all articles