Oracle における ROWNUM と ROWID の違い
Oracle データベースでは、ROWNUM と ROWID は 2 つの異なる概念であり、それぞれ独自の目的と機能があります。
ROWNUM
-
定義: ROWNUM は、テーブル内の各行の 1 から始まる番号を返す疑似列です。
-
使用法: ROWNUM は通常、結果セットまたはページング クエリ内の行数を制限するために使用されます。
- 例:
<code class="sql">SELECT * FROM employees
WHERE ROWNUM <= 10; -- 返回前 10 行</code>
ログイン後にコピー
ROWID
-
定義: ROWID はテーブル内の各行を一意に識別する内部識別子。
-
用途: ROWID は主に、インデックス付けやデータ ブロック管理などの内部目的に使用されます。また、削除された行を回復したり、テーブル内の特定の行を識別したりするために使用することもできます。
- 例:
<code class="sql">SELECT ROWID FROM employees
WHERE employee_id = 10; -- 返回员工 ID 为 10 的那一行的 ROWID</code>
ログイン後にコピー
主な違い
-
機能: ROWNUM行番号を返しますが、ROWID は行の内部識別子を返します。
-
粒度: ROWNUM はクエリごとに一意ですが、ROWID はデータベース全体で一意です。
-
使用法: ROWNUM は結果またはページネーションを制限するために使用され、ROWID は内部データ管理に使用されます。
-
パフォーマンス: ROWNUM では、Oracle が各行の行番号を計算する必要があるため、クエリが遅くなる可能性があります。 ROWID は事前に計算されるため、通常、パフォーマンスが向上します。
以上がOracleのrownumとrowidの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。