SQL文で処理対象の行を特定するには探索条件を使用します。探索条件が成立する行が操作の対象になります。探索条件には以降で説明する述語を単独で、または論理演算子(“AND”、“OR”または“NOT”)で組み合わせて指定します。述語の結果は、“真”、“偽”、または“不定”のいずれかになります。述語または述語の組合せが“真”の場合に探索条件は成立、“偽”または“不定”の場合に探索条件は不成立となります。なお、論理演算子のことを“ブール演算子”とも呼びます。
論理演算子の機能と指定方法について説明します。
探索条件に論理演算子“AND”を指定した例です。在庫表から、製品番号が100以上で、かつ倉庫番号が1の行を取り出します。
SELECT … FROM 在庫管理.在庫表 WHERE 製品番号 >= 100 AND 倉庫番号 = 1 (1) (2) (3)
(1) 述語
(2) 論理演算子
(3) 述語
(1)~(3) 探索条件
探索条件に論理演算子“OR”を指定した例です。在庫表から、製品番号が100以上か、または倉庫番号が1の行を取り出します。
SELECT … FROM 在庫管理.在庫表 WHERE 製品番号 >= 100 OR 倉庫番号 = 1 (1) (2) (3)
(1) 述語
(2) 論理演算子
(3) 述語
(1)~(3) 探索条件
探索条件に論理演算子“NOT”を指定した例です。在庫表から、製品名が“テレビ”以外の行を取り出します。
SELECT … FROM 在庫管理.在庫表 WHERE NOT 製品名 = N'テレビ' (1) (2)
(1) 論理演算子
(2) 述語
(1)~(2) 探索条件
述語と述語のANDを指定した結果を“表6.1 ANDの真理表”に、ORを指定した結果を“表6.2 ORの真理表”に示します。述語の前にNOTを指定した結果を“表6.3 NOTの真理表”に示します。
述語の結果 | 真 | 偽 | 不定 |
---|---|---|---|
真 | 真 | 偽 | 不定 |
偽 | 偽 | 偽 | 偽 |
不定 | 不定 | 偽 | 不定 |
述語の結果 | 真 | 偽 | 不定 |
---|---|---|---|
真 | 真 | 真 | 真 |
偽 | 真 | 偽 | 不定 |
不定 | 真 | 不定 | 不定 |
述語の結果 | NOTの結果 |
---|---|
真 | 偽 |
偽 | 真 |
不定 | 不定 |
探索条件には、複数の論理演算子を組み合わせて使用することができます。このとき、論理演算子の評価順序は以下のとおりです。
NOT
AND
OR
また、括弧(“(”および“)”)を使用して評価順序を指定することができます。括弧の中の条件は、ほかに先立って評価されます。