« 【情報処理@DB】(24/39) | トップページ | 【情報処理@DB】(26/39) »

【情報処理@DB】(25/39)

(この日記は2007/3/22のmixi日記から転載したものです)

【情報処理】SQLメモ

1.制約の種類(対象別)
→列制約、表制約、定義域制約、表明の4種類がある。

1-1.共通事項
→表明以外にはCONSTRAINTで制約名をつけられる。制約属性でチェックする時期を設定できる。

1-2.列制約
→表の列に制約を設定。

(構文)
列名 [CONSTRAINT 制約名] 制約指定 [制約属性]

(種類)
NOT NULL
PRIMARY KEY
UNIQUE
REFERENCES
CHECK

(備考)
NOT NULLは列制約のみ。CHECKで自分以外の列は参照できない。

1-3.表制約
→表全体に制約を設定。

(構文)
[CONSTRAINT 制約名] 制約指定1 [制約指定2] [制約指定3...][制約属性]

(種類)
PRIMARY KEY
UNIQUE
REFERENCES(FOREIGN KEY)
CHECK

(備考)
NOT NULLが使えない。REFERENCESはFOREIGN KEYで列名指定する。CHECKで自分以外の列や表も参照できる。

1-4.定義域制約
→ドメイン(定義域)に制約を設定。

(構文)
CREATE DOMAIN 型名 [デフォルト設定] [CONSTRAINT 制約名] 制約指定 [制約属性]

(種類)
CHECK

(備考)
CHECKのみ指定可能。値はVALUEで表現。(例:「VALUE>100」)

1-5.表明
→複数の表の関係に対する制約。

(構文)
CREATE ASSERTION 表明名 CHECK(探索条件) [制約属性]

(備考)
NOT EXISTS と集合関数がよく使われる。

2.制約の種類(機能別)

2-1.NOT NULL(ヌル不可)
→値にNULL値を禁止。列制約のみ。

2-2.UNIQUE(一意性)
→値が各行で重複してはならない。ただしNULL値は許可され、複数の行がNULLになってもよい。

2-3.PRIMARY KEY(主キー)
→重複不可かつNULL不可。複数の列で主キーを構成することも可能。

2-4.REFERNCES(外部キー)
→他の表か自身の主キーを参照する。値は参照先の主キーに存在する値かNULLでなくてはならない。

2-5.CHECK(探索条件)
→値の範囲などに条件を設定する。列、表、定義域に設定できる。

3.制約属性
→制約をチェックするタイミング(二種類)を設定。列、表、ドメイン、表明のいずれにも設定可能。

INITIALLY IMMEDIATE NOT DEFERRABLE
→変更と同時にチェック

INITIALLY DEFERRED DEFERRABLE
→変更時はスルーしてコミット時にチェック

|

« 【情報処理@DB】(24/39) | トップページ | 【情報処理@DB】(26/39) »

データベース(試験)」カテゴリの記事

学問・資格」カテゴリの記事

情報処理技術者試験」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/516130/47690944

この記事へのトラックバック一覧です: 【情報処理@DB】(25/39):

« 【情報処理@DB】(24/39) | トップページ | 【情報処理@DB】(26/39) »