
基本情報技術者試験基礎・応用
条件を読む・根拠を説明する
CHECKとNULL
条件を整理し、答えを選んでから解き方を確認しましょう。
PostgreSQLでpriceにCHECK(price>0)だけを付け、NOT NULLは付けない。NULLの登録はどれか。
答え・解き方を読む
CHECK単独では拒否されない
考える順序
- 1CHECKは真またはNULLの結果を受け入れる
- 2NULL>0は不明であり偽とは異なる
- 3NULLも禁止したいならNOT NULLを併用
選択肢ごとの理由
- 正解 · CHECK単独では拒否されない
CHECKは真またはNULLの結果を受け入れる。NULL>0は不明であり偽とは異なる。NULLも禁止したいならNOT NULLを併用。
- 比較 · 必ず0に変換される
値を0に自動変換する制約ではありません。
- 比較 · 必ず負数扱いで拒否
NULLは負の数値ではありません。
- 比較 · UNIQUEも自動付与される
CHECKから一意制約が自動生成されるわけではありません。