DDLによる表とその関係の管理複数選択24

表レベルで指定することができる制約はどれですか。

ANOT NULL制約
BCHECK制約
CUNIQUE制約
DPRIMARY KEY制約
EFOREIGN KEY制約
解説正答:B・C・D・E

NOT NULL制約のみ表レベルで指定できません。他の制約はすべて列レベル・表レベルの両方で指定可能です。
制約と指定レベルの対応:

制約名列レベル表レベル
NOT NULL制約×
CHECK制約
UNIQUE制約
PRIMARY KEY制約
FOREIGN KEY制約

なぜNOT NULL制約は表レベル指定できないのか:

NOT NULL制約は 特定の1列に対する制約 であり、表全体や複数列にまたがる意味を持ちません。一方で、複合主キーや複数列のUNIQUE制約などは表レベル指定が必須です。

例:複合PRIMARY KEY(表レベル指定)

CREATE TABLE order_items (
  order_id   NUMBER,
  item_no    NUMBER,
  quantity   NUMBER,
  CONSTRAINT pk_order_items PRIMARY KEY (order_id, item_no)
);