OceanBase logo

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

ドキュメント

会社概要

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

日本 - 日本語
International - English
中国站 - 简体中文
クラウドで始める

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

クラウドで始める
编组
すべての製品
    • データベース
    • アイコンOceanBaseデータベース
アイコン

OceanBaseデータベース

V4.3.5

    OceanBase logo

    AI時代を支える分散データベース

    日本 - 日本語
    International - English
    中国站 - 简体中文
    プロダクト
    OceanBase Cloudエンタープライズ版コミュニティ版OceanBase seekdb
    会社概要
    OceanBaseについて法的情報お問い合わせ
    公式アカウント
    ConnpassXQiitaLumaGitHub

    © OceanBase 2026. All rights reserved

    クラウドサービス契約個人情報保護ポリシーセキュリティ
    お問い合わせ
    ドキュメントフィードバック
    1. ホーム
    2. OceanBaseデータベース
    3. V4.3.5
    アイコンOceanBaseデータベース
    V 4.3.5
    • V 4.3.5

    ビュー操作とデータアクセスガイド

    最終更新日:2026-04-09 02:53:56  更新
    シェア
    このページの内容
    データ操作とビュー
    更新可能なビューの作成例
    ビューのデータアクセスプロセス
    ビュークエリアクセスの例
    更新可能なビュー
    更新操作の例

    折りたたみ

    シェア

    データ操作とビュー

    データベースにおいて、ビューとはテーブル(基準テーブル)の結果セットに基づく仮想的な表示です。ユーザーはビューに対してクエリを実行することができ、特定の条件下ではデータ変更言語(DML)操作、例えば挿入、更新、削除などを行うことができます。ビューへの操作は基準テーブルのデータに直接影響を与え、基準テーブルの整合性制約やトリガーによって制御されます。

    更新可能なビューの作成例

    以下の例は、部門番号が10の従業員情報のみを含む staff_dept_10 という名前のビューを作成する方法を示しています。CHECK OPTION を使用して、ビューに対するDML操作がビュー定義のデータ範囲内に限定されるようにします。

    そのため、部門10の従業員の行データを挿入できますが、部門30の従業員の行データを挿入することはできません。

    CREATE VIEW staff_dept_10 AS
    SELECT employee_id, last_name, job_id, manager_id, department_id
    FROM   employees
    WHERE  department_id = 10
    WITH CHECK OPTION CONSTRAINT staff_dept_10_cnst;
    

    ビューのデータアクセスプロセス

    OceanBaseデータベースでは、ビューのクエリ文は内部データディクショナリに保存されます。ユーザーがビューを通じてデータを読み取る際、データベースは以下の手順を実行します:

    1. ユーザーのクエリを解析し、ビューに遭遇した場合はデータディクショナリからビューのクエリ文を取得して解析します。
    2. ビューのクエリとユーザーのクエリを統合し、より優れた実行計画を生成する可能性があります。
    3. 生成された実行計画に基づいてクエリを実行します。

    ビュークエリアクセスの例

    1. staff_dept_10 という名前のビューを作成し、以下のように定義します:

      CREATE VIEW staff_dept_10 AS
      SELECT employee_id, last_name, job_id, manager_id, department_id
      FROM   employees
      WHERE  department_id = 10
      
    2. ユーザーは以下のクエリで staff_dept_10 ビューにアクセスします:

      SELECT last_name FROM staff_dept_10 WHERE employee_id = 200;
      
    3. OceanBaseデータベースは上記のクエリを次のように解析します:

      SELECT last_name
      FROM   (SELECT employee_id, last_name, job_id, manager_id, department_id
               FROM   employees
               WHERE  department_id = 10) staff_dept_10
      WHERE  employee_id = 200;
      
    4. データベースはクエリを書き換えて、ビューをメインクエリにマージしようとします:

      SELECT last_name
      FROM  employees
      WHERE  employee_id = 200 AND department_id = 10;
      
    5. 実行計画を生成し、対応するSQLを実行します。

    更新可能なビュー

    ビューはデータの読み取りだけでなく、データの更新にも使用できます。このタイプのビューを更新可能なビューと呼びます。更新可能なビューに対して、ユーザーは更新や削除などの操作を実行できます。

    更新操作の例

    例えば、以前に作成された staff_dept_10 ビューに対して、ユーザーは削除操作を実行できます:

    DELETE FROM staff_dept_10 WHERE employee_id = 200;
    

    OceanBaseデータベースがこのリクエストを処理するプロセスは以下のとおりです:

    1. ステートメントを解析し、staff_dept_10 をビューの定義に置き換えます。
    2. ビューが更新対象として必要な制約条件を満たしているかどうかを検証します。
    3. ビューをメインステートメントにマージします。
    4. 実行計画を生成して操作を実行します。

    内部では、OceanBaseデータベースが実際に実行するのは次のとおりです:

    DELETE FROM employees WHERE employee_id = 200 AND department_id = 10;
    

    ビューが更新可能かどうかは、以下の条件によって決まります:

    • 更新操作は単一のエンティティテーブルにのみ関係します。
    • ビューのクエリにおいて、各行データは変更されるテーブル内で唯一のエンティティを表します。多対多接続ではこの操作は許可されません。
    • ビューに WITH READ ONLY の制限が含まれていないこと。

    前のトピック

    Oracle互換ビュー
    最後

    次のトピック

    マテリアライズドビュー
    次
    このページの内容
    データ操作とビュー
    更新可能なビューの作成例
    ビューのデータアクセスプロセス
    ビュークエリアクセスの例
    更新可能なビュー
    更新操作の例