今週は、「よくあるSQLクエリの間違い」シリーズの「一時停止」ボタンを一時的に押して、SQLの述語について説明したいと思います。その理由は、述語がよくあるSQLクエリの間違いシリーズのパート3に含まれるためです。
述語とは何ですか?
述語は、TRUE、FALSE、またはUNKNOWNと評価される単純な式です。述語は通常、WHERE句とHAVING句の検索条件、FROM句の結合条件、およびブール値が必要なクエリの他の部分で使用されます。
述語には、次のような多くの種類があります。
- 比較
- LIKE
- BETWEEN
- IN
- EXISTS
- IS NULL (/INTEGER/DECIMAL/FLOAT...)
この記事の残りの部分では、上記の述語タイプのいくつかの例を調べます。
比較述語
WHERE employee_salary > 100000
などの式で比較演算子を使用する時はいつでも、TRUE、FALSE、またはUNKNOWNと評価される述語を作成しています。比較演算子は次のとおりです。
- = 等しい
- > より大きい
- < より小さい
- >= 以上
- <= 以下
- <> 等しくない
したがって、比較述語は次の形式を取ります。
expression_1 comparison_operator expression_2
比較述語では、expression2をサブクエリにすることもできます。サブクエリが行を返さない場合、比較述語はFALSEと評価されます。
LIKE 述語
SQLでは、パターンマッチングの一番の述語はLIKE演算子です。それは列の値を指定されたパターンと比較します。Likeは、任意の文字または日付データ型と一緒に使用して機能します。次に例を示します。
BETWEEN 述語
BETWEEN演算子は、修飾値の下限と上限を決定する範囲を指定します。例えば、述語income BETWEEN 5000 AND 20000
では、選択されたデータは5000以上20000以下の範囲です。Between演算子は、数値、テキスト、および日付のデータ型で使用できます。 以下はその例です。
IN 述語
IN演算子を使用すると、クエリ検索に使用される2つ以上の式を指定できます。対応する列の値がIN述語で指定された式の1つと等しい場合、条件の結果はTRUEになります。
EXISTS 述語
EXISTS述語は、引数としてサブクエリを受け入れます。サブクエリが1つ以上の行を返す場合はTRUEを返し、0行を返す場合はFALSEを返します。
次に例を示します。
IS NULL 述語
=比較演算子を使用してnullをテストすることはできないため、IS NULLを使用して式がnullかどうかを判別します。行値式に適用する場合、全ての要素が同じようにテストを受ける必要があります。
IS NULL述語は、次の形式を取ります。
IS [NOT] NULL
例えば、xがnullの場合、式x IS NULL
はTRUEです。
IS UNKNOWNは、式がBOOLEAN型の場合のIS NULLの同義語です。
IS NOT NULL述語を使用して、姓がNULL以外の値である全てのアクターをフェッチするクエリを次に示します。
結論
このブログでは、定期的にスケジュールされているブログを中断して、SQL述語に関するこの重要なレッスンを提供しました。通常、WHERE句とHAVING句の検索条件、FROM句の結合条件で使用される述語は、TRUE、FALSE、またはUNKNOWNと評価される式です。 来週の「よくあるSQLクエリの間違い」シリーズの続きでは、述語が再び登場します。