「プログラマのためのSQL」第1章 データベースの設計 1.1.3 カラム制約
「プログラマのためのSQL」
第1章 データベースの設計
1.1 スキーマとテーブルの作成
1.1.3 カラム定義
の解説です。
以下引用です。
(カラム制約を)「これをマスターすれば、真の名人に見えるかもしれません。」
以下の説明がされています。
・NOT NULL制約
・CHECK()制約
・UNIQUEとPRIMARY KEY制約
・PEFERENCE制約
CHECK()とPEFERENCEについてですが、
データの整合性はアプリケーション側で行うため、使用することは少ないのではないでしょうか。
CHECKについてはたいてい、CHECK( rating BETWEEN 1 AND 10)というように単純な範囲の検査に使用しますが、
「この本来の能力は他の行や、他のテーブル、システムの提供する値を使った複雑な式を書けるところにあります」だそうです。
例えば、
CHECK (NOT EXISTS (SELECT * FROM TABLE_A WHERE ...))
というようにすると、TABLE_Aに存在しないという条件を書くこともできます。