Oracle のページング クエリの原則: 1. ORACLE の rownum フィールドの特性を使用してクエリを実行します; 2. 指定された数の N 個のデータをクエリします; 3. 指定された数の N 個のデータから M 個のデータを削除しますクエリ結果の数; 4. Web 開発では、M と N をパラメータとして渡すことで、ページ分割された結果を取得できます。
このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。
Oracle ページング クエリの原理とは何ですか?
ページングの原理:
1. ORACLE の rownum フィールドの特性を使用してクエリを実行します。
2. 最初の N 個のデータをクエリします。
3. ステップ 2 のクエリ結果から M ~ N 個のデータを取得します。
4. Web の場合開発 ページ分割された結果を取得するには、パラメータとして M と N を渡します。
例: テーブル内の 20 ~ 30 件のレコードをクエリする場合、SQL ステートメントは次のようになります。
select * from( select rownum as pageNo, A.* from tableName A where rownum <= 30) B where B.pageNo >=20;
例:
--従業員表で最も給与の高い上位 5 人を取得するにはどうすればよいでしょうか?
SELECT * FROM( SELECT * FROM emp ORDER BY sal DESC) WHERE Rownum<6
--従業員テーブルで給与が 5 位にランクされている従業員の情報を取得する方法
SELECT * FROM( SELECT * FROM emp ORDER BY sal DESC) WHERE Rownum=5
--クエリにコンテンツが見つかりません
- -同じ ROWNUM>=5 クエリ 5 最初の場所以降の結果も失敗しました
--これには ROWNUM が関係しますが、ROWNUM より小さい値のみを指定できますが、それ以上にすることはできません。つまり、Oracle データベースでのページング クエリに対する重要な障害はこれです。
--原理としては、ROWNUMは毎回1から並べなければならない擬似列です。したがって、ROWNUM>=n となります。たとえば、1 が任意の n (項目数) より大きいかどうかは当てはまりません。 ROWNUM=1 で見つけることができます。 1>=1 が成り立つからです。 N=2,1>=2 は当てはまりません。したがって、最初の項目のみが以上であるかどうかをチェックできます。プラス以下。私が確認できるのはこれだけです。したがって、この難しさは、ページング クエリの難しさと障害を増大させるとみなすことができます。
--方法 1 最も単純なクエリ
--記事 5 ~ 10。
--ネスト層とサブクエリは 1 つだけです。
SELECT * FROM (SELECT ROWNUM rn ,e.* FROM emp e WHERE ROWNUM<=10) WHERE rn>=5;
--これは実際には次のメソッドから変換されます。
--つまり、サブクエリによって取得された新しいテーブルが再度クエリされます。
--重要なステップは ROWNUM rn です。
--e.* を忘れないでください。そうしないと完全なデータが存在しません。
SELECT * FROM (SELECT ROWNUM rn, e.* FROM emp e WHERE ROWNUM <= 10) table_1 WHERE table_1.rn>= 5;
--上はソートされていません、次はソートされています
--クエリを実行する前に最初にソートする必要があるため、テーブルが大きくなるほど効率が遅くなります。
--方法 2
SELECT * FROM (SELECT ROWNUM rm ,e.* FROM emp e order by sal DESC ) WHERE rm>=5 AND rm<=10
--以下は分析関数を使用する方法です;
--方法 3
SELECT * FROM (SELECT emp.*, ROW_NUMBER () OVER (ORDER BY sal DESC) rank FROM emp) WHERE rank >=6 AND rank<=10;
--ただし、実際のクエリ結果を見ると、まったく異なることがわかります。
--手動でチェックしました。解析関数法の結果は正しいです。分かりません。
--誰か説明してもらえますか?
--意味のない
SELECT * FROM (SELECT e.*, ROWNUM AS rn from ( SELECT * FROM emp ORDER BY sal DESC) e )ee WHERE ee.rn>=5 AND ee.rn<=10
--方法 4 (Baidu、Tmall クエリなどの大規模なデータ クエリ)
SELECT * FROM( SELECT e.* ,ROWNUM rn FROM ( SELECT * FROM emp ORDER BY sal DESC ) e WHERE ROWNUM<=10 )WHERE rn>=6;
--分解手順
--最初のステップ:
SELECT * FROM emp ORDER BY sal DESC
--2 番目のステップ:
SELECT e .*,ROWNUM rn FROM (SELECT * FROM emp ORDER BY sal DESC) e
--3 番目のステップ:
SELECT e .*,ROWNUM rn FROM (SELECT * FROM emp ORDER BY sal DESC) e WHERE ROWNUM<=10
--4 番目のステップ:
SELECT * FROM( SELECT e .*,ROWNUM rn FROM (SELECT * FROM emp ORDER BY sal DESC) e WHERE ROWNUM<=10) WHERE rn>=5
--間違った推測です。
SELECT e .*,ROWNUM rn FROM (SELECT * FROM emp ORDER BY sal DESC) e WHERE rn<=10
--エイリアスを作成するには、データ テーブルをクエリする必要があります。
--クエリ条件はまだ存在しない条件によって判断されるため、当然失敗します。
--方法 5、アイドル的で退屈な使用法
WITH ee AS ( SELECT e.*, ROWNUM rn FROM ( SELECT * FROM emp ORDER BY sal DESC )e ) SELECT ee.* FROM ee WHERE ee.rn>=5 AND ee.rn<=10
推奨チュートリアル: 「Oracle ビデオ チュートリアル 」
以上がOracle ページング クエリの原理は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

方法:1、利用“select*from user_indexes where table_name=表名”语句查询表中索引;2、利用“select*from all_indexes where table_name=表名”语句查询所有索引。

oracle asm指的是“自动存储管理”,是一种卷管理器,可自动管理磁盘组并提供有效的数据冗余功能;它是做为单独的Oracle实例实施和部署。asm的优势:1、配置简单、可最大化推动数据库合并的存储资源利用;2、支持BIGFILE文件等。

在Oracle中,可利用lsnrctl命令查询端口号,该命令是Oracle的监听命令;在启动、关闭或重启oracle监听器之前可使用该命令检查oracle监听器的状态,语法为“lsnrctl status”,结果PORT后的内容就是端口号。

在oracle中,可以利用“TO_SINGLE_BYTE(String)”将全角转换为半角;“TO_SINGLE_BYTE”函数可以将参数中所有多字节字符都替换为等价的单字节字符,只有当数据库字符集同时包含多字节和单字节字符的时候有效。

方法:1、利用“LOWER(字段值)”将字段转为小写,或者利用“UPPER(字段值)”将字段转为大写;2、利用“REGEXP_LIKE(字符串,正则表达式,'i')”,当参数设置为“i”时,说明进行匹配不区分大小写。

在oracle中,可以利用“drop sequence sequence名”来删除sequence;sequence是自动增加数字序列的意思,也就是序列号,序列号自动增加不能重置,因此需要利用drop sequence语句来删除序列。

在oracle中,可以利用“select ... From all_tab_columns where table_name=upper('表名') AND owner=upper('数据库登录用户名');”语句查询数据库表的数据类型。

方法:1、利用“alter system set sessions=修改后的数值 scope=spfile”语句修改session参数;2、修改参数之后利用“shutdown immediate – startup”语句重启服务器即可生效。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ホットトピック



