真偽式 Boolean expressionsBoolean operatorspart of WHERE clauseAND boolean operator OR boolean operatorNOT boolean operator Comparison boolean operatorsIS NULL boolean operatorIS NOT NULL boolean operatorLIKE boolean operatorLIKEescape character for BETWEEN boolean operatorIN boolean operator EXISTS boolean operatorQuantified comparison boolean operator

真偽式はWHERE節やチェック制約に置くことができます。 チェック制約に置く真偽式には、ここで記述されていない制限があります。 詳細はを参照してください。 WHERE節に置く真偽式の構文は柔軟なものとなっています。具体的な例は、WHERE節を参照してください。

真偽式にはブーリアン演算子を一つ以上置くことができます。 この演算子はに一覧されています。 SQL のブーリアン演算子 演算子 説明と例 構文 AND, OR, NOT オペランドにとる真偽式を評価します。 (orig_airport = 'SFO') OR (dest_airport = 'GRU') -- 真を返す。 { AND | OR | NOT } 比較演算子 <, =, >, <=, >=, <> は、全ての組み込みの型に適用することができます。 DATE('1998-02-26') < DATE('1998-03-01') -- 真を返す。 { < | = | > | <= | >= | <> } IS NULL, IS NOT NULL 式の結果が空かそうでないかを判定します。 WHERE MiddleName IS NULL IS [ NOT ] NULL LIKE 文字式が文字パターンと一致するかを判定します。文字パターンには一つ以上のワイルドカードが含まれます。

%は最初の文字式にて、該当する位置の任意の文字数(0文字以上)の文字列に一致します。

_は文字式にて、該当する位置の一文字に一致します。

それ以外の文字は、文字式にて該当する位置の同じ文字に一致します。city LIKE 'Sant_'

%や_をワイルドカードではない文字とするには、ESCAPE節で指定するエスケープ文字を使って文字をエスケープします。 SELECT a FROM tabA WHERE a LIKE '%=_' ESCAPE '='

LIKEによる比較ではは、個々の文字を非メタ文字と比較します。これはが=による比較のとき行う処理とは違います。=による比較では左辺の文字列全体が、=演算子の右辺の文字列全体と比較されます。より詳細な情報については、における文字の照合を参照してください。
文字式 [ NOT ] LIKE ワイルドカードのある文字式 [ ESCAPE 'エスケープ文字']
BETWEEN 最初のオペランドが二つ目と三つ目のオペランドの間の値であるかを判定します。二つ目のオペランドは三つ目のオペランドより小さな値でなければなりません。 この演算子は<=と>=が適用できる型に対してのみ適用できます。 WHERE booking_date BETWEEN DATE('1998-02-26') AND DATE('1998-03-01') [ NOT ] BETWEEN AND IN 表副問合せや値の並びに作用します。左辺の式の値が表副問合せや値の並びに含まれるならば、真を返します。なお、表副問合せは複数行を返してかまいませんが、列は一つでなければなりません。WHERE booking_date NOT IN (SELECT booking_date FROM HotelBookings WHERE rooms_available = 0) { [ NOT ] IN 表副問合せ | [ NOT ] IN ( [, ]* ) } EXISTS 表副問合せに作用して、その表副問合せが行を返すならば真を返し、行が返らないならば偽を返します。表副問合せは複数の列(*を使った場合に限ります。)や行を返すことができます。WHERE EXISTS (SELECT * FROM Flights WHERE dest_airport = 'SFO' AND orig_airport = 'GRU') [NOT] EXISTS 表副問合せ 定量比較 定量比較はALL、ANY、SOMEの何れかが適用された比較演算子 (<,=, >, <=, >=, <>)となります。

これは表副問合せに作用します。表副問合せは複数の行を返すことができますが、単一の列しか返せません。

ALLが指定された場合、表副問合せが返す全ての値に対して、比較の結果が真でなければなりません。ANYないしSOMEが指定された場合、表副問合せが返す何れかの値に対して、比較の結果が真である必要があります。ANYとSOMEは同じ意味です。 WHERE normal_rate < ALL (SELECT budget/550 FROM Groups)

比較演算子 { ALL | ANY | SOME } 表副問合せ