Db2-constraints
DB2-制約
この章では、データベースのさまざまな制約について説明します。
前書き
データベースの整合性を強化するために、制約と呼ばれる一連のルールが定義されています。 制約は、列の値を許可または禁止します。
リアルタイムデータベースアクティビティでは、特定の制限付きでデータを追加する必要があります。 たとえば、販売データベースでは、sales-idまたはtransaction-idは一意である必要があります。 制約タイプは次のとおりです。
- NOT NULL
- ユニーク
- 主キー
- 外部キー
- チェック
- 情報提供
制約はテーブルにのみ関連付けられます。 特定のテーブルのみに適用されます。 それらは、テーブルの作成時に定義され、テーブルに適用されます。
各制約の説明:
NOT NULL
テーブル内の1つ以上の列からのNULL値を禁止するルールです。
構文:
例:[4つの列(id、itemname、qty、price)を含む販売テーブルを作成し、すべての列に「not null」制約を追加して、テーブルにnullセルが形成されないようにします。
テーブルへのNOT NULL値の挿入
以下に示すように、テーブルに値を挿入できます。
例: [ERRORoneous Query]
出力: [正しいクエリ]
例: [正しいクエリ]
出力:
ユニークな制約
これらの制約を使用して、列の値を一意に設定できます。 このため、テーブルの作成時に一意の制約は「not null」制約で宣言されます。
構文:
例:
テーブルへの値の挿入
- 例:*一意のIDが1、2、3、4の4つの異なる行を挿入する場合
例:「id」値が3の新しい行を挿入するには
出力:既存のID値を持つ新しい行を挿入しようとすると、次の結果が表示されます。
主キー
一意の制約と同様に、「主キー」と「外部キー」の制約を使用して、複数のテーブル間の関係を宣言できます。
構文:
例:「sid」を主キーとして「salesboys」テーブルを作成するには
外部キー
外部キーは、別のテーブルの行の少なくとも1つの主キーと一致するために必要なテーブル内の列のセットです。 これは、参照制約または参照整合性制約です。 これは、1つ以上のテーブルの複数の列の値に関する論理規則です。 テーブル間の必要な関係を有効にします。
前に、「shopper.salesboys」という名前のテーブルを作成しました。 このテーブルでは、主キーは「sid」です。 ここで、「従業員」という名前の異なるスキーマと「salesboys」という名前のテーブルを持つ営業少年の個人情報を含む新しいテーブルを作成しています。 この場合、「sid」は外部キーです。
構文:
例:[外部キー列「sid」を持つ「salesboys」という名前のテーブルを作成するには]
例:[主キーテーブル「shopper.salesboys」への値の挿入]
例:[値を外部キーテーブル「employee.salesboys」に挿入する[エラーなし]]
「shopper.salesboys」テーブルに保存されていない未知の番号を入力した場合、SQLエラーが表示されます。
例:[エラー実行]
出力:
制約の確認
この制約を使用して、テーブルの特定の列に条件付き制限を追加する必要があります。
構文:
例:[制約値を持つemp1テーブルを作成するには]
値を挿入する
以下に示すように、テーブルに値を挿入できます。
制約の削除
さまざまな制約を削除するための構文を見てみましょう。
UNIQUE制約の削除
構文:
主キーの削除
構文:
チェック制約の削除
構文:
外部キーのドロップ
構文: