せっかくなので、勉強会で取り上げたネタを
書き込んでおきます。
第一弾は、RDBにおけるNULL
RDBは、プログラミング言語とは違い、
3値論理に基づいてNULLを扱います。
この3値論理上では、= NULLとした場合、
必ずunknownとなり、結果が得られません。
(C# とかやった後、思わずWhere 項目 != null
とかして、一瞬なんで出ないと思ってしまうのは私です。)
そのため、NULLを比較するための構文として
IS NULL, IS NOT NULLが存在します。
う~ん、ややこしいと思ったあなた。
3値論理でそんなこと言ってたらだめです。
関係モデル生みの親、コッドさんは、
さらに4値論理を提唱され、2種類のNULLを
扱おうとされていました。
2種類のNULL
未知 :サングラスの下の目の色とか
適応不能 :車の性別とか
分からなくはないのですが、実装されなくてよかった~。
続く。
0 件のコメント:
コメントを投稿