okinawa

IT勉強メモ

【SQL】3値論理とは

3値論理

普通は TRUE・FALSE の2つ。
SQLは TRUE・FALSE・UNKNOWNの3つ。

いつUNKNOWNになるの?

NULLが絡むとUNKNOWNになる。

WHERE
A = NULL -- UNKNOWNになる

なのでIS NULLやIS NOT NULLがある。

WHERE
A IS NULL
OR A IS NOT NULL

NOT AND ORでUNKNOWNを評価するとどうなる?

一応これを知っておかないとハマりそう。

真理値の優先順位

とりあえずこれだけ覚えておけばOK

  • AND:FALSE > UNKNOWN > TRUE
  • OR: TRUE > UNKNOWN > FALSE

論理演算の評価一覧

NOT

  • NOT TRUE = FALSE
  • NOT FALSE = TRUE
  • NOT UNKNOWN = UNKNOWN

AND

  • TRUE AND TRUE = TRUE
  • TRUE AND FALSE = FALSE
  • TRUE AND UNKNOWN = UNKNOWN
  • FALSE AND UNKNOWN = FALSE
  • UNKNOWN AND UNKNOWN = UNKNOWN

OR

  • TRUE OR TRUE = TRUE
  • TRUE OR UNKNOWN = TRUE
  • FALSE OR FALSE = FALSE
  • FALSE OR UNKNOWN = UNKNOWN
  • UNKNOWN OR UNKNOWN = UNKNOWN