非ナル値制約
データベースの項目に付ける制約だよ
空の値(NULL)が入れられなくなるよ
「NOT NULL制約」と表現されるのが一般的だと思うよ
簡単に書くよ
非ナル値制約(読:ヒナルチセイヤク 英:NOT NULL constraint)とは
いわゆる「NOT NULL制約」のこと。
用語の中身としては
「空っぽの値(NULL)は入れちゃダメだよ」制約のこと
です。
もう少し具体的に書くと
データベースの項目に付ける制限(制約)のひとつ
であり
「この項目に入れる値はNULLではダメですよ。入れようとした値がNULLだったら怒りますからね」な制約のこと
です。
詳しく書くよ
最初に留意事項です。
「NOT NULL制約」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
NOT NULL制約を日本語っぽくした表現が「非ナル値制約」です。
「NOT NULL制約って何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

それでは、いってみましょう……の前に注意事項です。
専門外の方がイメージしやすいように「データベースの項目」と表現していますが、正確には「データベースのテーブルの項目」です。
こだわり派な人は適当に読み替えてください。
それでは本題です。
まずは予備知識として
・NULL(ヌル、ナル)
・データベース
・テーブル
について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
NULLは「何もないよー」を表す単語です。
数学の世界における「0(ゼロ)」みたいなものですね。
宇宙の話で言えば、ブラックホールみたいなものです。
例えば、そうですね。
ピヨ太君が、お盆を持っていたとしましょう。
お盆の上にミカンが1つ乗っていれば「1」です。
お盆の上にミカンが3つ乗っていれば「3」です。
お盆の上にミカンが乗っていなければ「0」です。
お盆の上に乗っているミカンの数が数字を表しています。
この条件下において、お盆を持っていない状態がNULLです。
細かく見ていくと複雑な部分もありますけどね。
大雑把なイメージは、そんな感じです。
データベースは「データを入れておく箱」です。
ただし「データベース」という用語は、実際には もう少し複雑な概念です。
データを入れておく箱そのものは「テーブル」と言います。
とりあえず
データベースの話において、実際にデータを入れておく箱がテーブル
と覚えてください。
以上を踏まえて、データベース(のテーブル)の項目に付与する制限のひとつで
「NULLは入れられないよ」な状態にしますよ制約
が「非ナル値制約」です。
上でも書きましたが「NOT NULL制約」と表現される場合もあります……というか「NOT NULL制約」という言い方の方が一般的だと思います。
※本ページでも以降は「NOT NULL制約」と表現します。
NOT NULL制約を付与された項目にはNULLが入れられなくなります。
「NULL」と言われてもイメージできない人は「空っぽな値」と解釈してください。
NOT NULL制約を付与された項目には空っぽな値が入れられなくなります。
例えば、そうですね。
ピヨピヨ学校のピヨクラスで演劇をすることになりました。
生徒の情報と配役はデータベースで管理することにしました。
データベースに入れる内容は
1.出席番号
2.名前
3.性別
4.配役
の4項目です。
えっちらおっちらと入力したところ、最終的には以下のような一覧表ができあがりました。
| 出席番号 | 名前 | 性別 | 配役 |
|---|---|---|---|
| 1番 | 相川 | 男 | 王子様 |
| 2番 | 合田 | 男 | 村人A |
| 3番 | 伊藤 | 男 | 村人B |
| 4番 | 宇野 | 男 | 村人C |
| 1番 | 伊藤 | 女 | お姫様 |
| 2番 | 井上 | 女 | 侍女 |
ここで少し考えてみてください。
「出席番号」や「名前」が空欄になることは、ありえるでしょうか。
「性別」は、もしかしたら不明な人がいるかもしれません。
「配役」も、参加しない人は空欄になるでしょう。
ですが「出席番号」や「名前」は必ず入りますよね。
生徒である以上、出席番号は割り当てられているはずです。
普通に考えて、名前もあるでしょう。
ということは「出席番号」や「名前」に空っぽな値が入ることは ありません。
もし入ったら、それはデータがおかしいということになります。
そこで「出席番号」と「名前」にNOT NULL制約を付けておくのです。
そうすれば「出席番号」と「名前」に空っぽな値が入れられません。
入れようとするとエラーになります。
NOT NULL制約は「この項目に値が入らないことは、ありえないよね。もし、この項目に空っぽな値が入ったら、それはデータがおかしいよね」な項目に付与します。
「これは空っぽな値には、なりえないよ」な項目にNOT NULL制約を付けておくことによって、おかしいデータを最初から入れられないようにしておくのです。
一言でまとめるよ
まぁ「非ナル値制約」って単語が出てきたら「空っぽな値(NULL)は入れられないよ制約なんだな~」と お考えください。
おまけ
■検索してみる?






