Navicatブログ

SQLの述語 2022年5月3日 Robert Gravelle

今週は、「よくある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は、任意の文字または日付データ型と一緒に使用して機能します。次に例を示します。

like_example (83K)

BETWEEN 述語

BETWEEN演算子は、修飾値の下限と上限を決定する範囲を指定します。例えば、述語income BETWEEN 5000 AND 20000では、選択されたデータは5000以上20000以下の範囲です。Between演算子は、数値、テキスト、および日付のデータ型で使用できます。 以下はその例です。

between_example (46K)

IN 述語

IN演算子を使用すると、クエリ検索に使用される2つ以上の式を指定できます。対応する列の値がIN述語で指定された式の1つと等しい場合、条件の結果はTRUEになります。

in_example (53K)

EXISTS 述語

EXISTS述語は、引数としてサブクエリを受け入れます。サブクエリが1つ以上の行を返す場合はTRUEを返し、0行を返す場合はFALSEを返します。

次に例を示します。

exists_example (45K)

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以外の値である全てのアクターをフェッチするクエリを次に示します。

is_not_null_example (24K)

結論

このブログでは、定期的にスケジュールされているブログを中断して、SQL述語に関するこの重要なレッスンを提供しました。通常、WHERE句とHAVING句の検索条件、FROM句の結合条件で使用される述語は、TRUE、FALSE、またはUNKNOWNと評価される式です。 来週の「よくあるSQLクエリの間違い」シリーズの続きでは、述語が再び登場します。

ブログのアーカイブ
シェア