0
0

SQLの3値論理をまとめてみた

Posted at

弱弱エンジニアである僕がSQLのスキル向上を目指し、今回学んだことを備忘録としてまとめてみる。

3値論理

一般的なプログラミング言語では、「trueとfalse」が真偽値として知られているが、SQLでは3つ目の値として「unKnow」が定義されている。

  • true・false = 2値論理
  • true・false・unknow = 3値論理

= NULLとIS NULL

SQLでNULLの値を取得したい場合、IS NULLを使用する。
「でもこんなミスしたことない?」
※今でもたまにやる。。。

WHERE val = NULL

このときvalはNUllでも返ってくる値は当然false。
え。なんで??
理由はNULLを比較演算子で判定するとunknowが返ってくるから。
knowはfalseとして評価される。

unknowの挙動

unknow同士の比較

unknowは一つの論理値な為、

unknow = unknow

は、trueとして評価される。

AND・ORの挙動

ANDの場合
false > unknow > true
ORの場合
true > unknow > false

のパワーバランスで評価されます。
※ANDにunknowが入ると絶対にtrueにならない!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0