Oracleクエリの外部キー

WBOY
リリース: 2023-05-08 09:23:36
オリジナル
2361 人が閲覧しました

Oracle は、さまざまな業界のデータ管理に広く使用されている人気のリレーショナル データベース管理システム (RDBMS) です。外部キーは、2 つのテーブル間の関係に基づくデータベース オブジェクトであり、データの整合性を制約し、データの一貫性を確保する役割を果たします。 Oracle データベースでは、外部キーのクエリは一般的な操作です。この記事では、Oracle を使用して外部キーをクエリする方法を紹介します。

1. テーブル構造の表示

Oracle を使用して外部キーをクエリする前に、テーブルの構造と関係を理解する必要があります。次の SQL ステートメントを使用して、テーブルの構造をクエリできます。

desc table_name;
ログイン後にコピー

ここで、table_name はクエリ対象のテーブルの名前です。このステートメントを実行すると、テーブルのフィールド リストとデータ型がリストされます。

2. 外部キーのクエリ

次のメソッドを使用して、Oracle で外部キーをクエリできます:

  1. システム テーブルを使用して外部キー情報をクエリします

Oracle システム テーブル "USER_CONSTRAINTS" には、主キー、外部キー、チェック制約などを含むすべての制約情報がデータベースに保存されます。次の SQL ステートメントを使用して、外部キー名と関連情報をクエリできます。

SELECT CONSTRAINT_NAME, TABLE_NAME, R_CONSTRAINT_NAME, STATUS
FROM USER_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'R' AND TABLE_NAME = 'table_name';
ログイン後にコピー

このうち、CONSTRAINT_NAME は外部キー名、TABLE_NAME は外部キーを含むテーブル名、R_CONSTRAINT_NAME は関連する主キーです。 name、STATUS は外部キーのステータスです。外部キーはキーワード「CONSTRAINT_TYPE = 'R'」でフィルタリングして除外できます。

  1. システム ビューを使用した外部キ​​ー情報のクエリ

Oracle システム ビュー "USER_FK_COLUMNS" は、外部キー情報の同様の詳細情報を提供します。次の SQL ステートメントを使用して、外部キー名と関連情報をクエリできます。

SELECT UC.CONSTRAINT_NAME, UC.TABLE_NAME, UCC.COLUMN_NAME, UC.R_CONSTRAINT_NAME
FROM USER_CONSTRAINTS UC, USER_CONS_COLUMNS UCC
WHERE UC.CONSTRAINT_TYPE = 'R' AND UC.CONSTRAINT_NAME = UCC.CONSTRAINT_NAME
AND UC.TABLE_NAME = 'table_name';
ログイン後にコピー

このうち、UC.CONSTRAINT_NAME は外部キー名、UC.TABLE_NAME は外部キーを含むテーブル名、UCC です。 .COLUMN_NAME は外部キー列名、UC.R_CONSTRAINT_NAME は関連付けられた主キー名です。 2 つのシステム テーブルを接続し、条件を追加することで、特定のテーブルの外部キー情報をクエリできます。

3. 概要

上記は、Oracle を使用して外部キーをクエリする方法です。実際のアプリケーションでは、外部キー クエリはテーブル間の関係を理解し​​、データの整合性をチェックし、データの一貫性を確保するのに役立ちます。外部キーを変更または削除するときは、不要なエラーを避けるために、データに対する外部キー制約の影響を考慮する必要があることに注意してください。使用する前に、まず関連するテーブルをバックアップし、慎重に操作する必要があります。

以上がOracleクエリの外部キーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート