概要: このチュートリアルでは、SQL の AND 演算子について説明し、SQL ステートメントのWHERE
句で柔軟な条件を形成する方法を示します。
SQL AND 演算子の紹介
AND
演算子は、WHERE
句のSELECT
、UPDATE
、またはDELETE
ステートメントにおいて、2つのブール式を組み合わせる論理演算子です。以下にAND
演算子の構文を示します。
expression1 AND expression2;
AND
演算子は、両方の式が真である場合に真を返します。2つの式のいずれかが偽の場合、またはいずれかの式がNULLの場合、AND
演算子は偽を返します。
次の表は、真、偽、NULLの値を比較した場合のAND
演算子の結果を示しています。
TRUE | FALSE | NULL | |
---|---|---|---|
TRUE | TRUE | FALSE | NULL |
FALSE | FALSE | FALSE | FALSE |
NULL | NULL | FALSE | NULL |
SQL AND 演算子の例
サンプルデータベースのemployees
テーブルを使用して、SQL AND 演算子を説明します。

次のステートメントは、ジョブIDが9であり、かつ給与が5,000より大きいすべての従業員を見つけます。
SELECT
first_name,
last_name,
job_id,
salary
FROM
employees
WHERE
job_id = 9
AND salary > 5000;

1997年から1998年の間に会社に入社したすべての従業員を見つけるには、次のようにAND
演算子を使用します。
SELECT
first_name,
last_name,
hire_date
FROM
employees
WHERE
YEAR (hire_date) >=1997
AND YEAR (hire_date) <= 1998;
Code language: SQL (Structured Query Language) (sql)
SQL AND 演算子と短絡評価
短絡評価機能により、データベースシステムは、結果を判断できるようになった時点で、論理式の残りの部分の評価を停止できます。
短絡評価機能の動作をよりよく理解するために、例を見てみましょう。
次の条件を見てください。
1 = 0 AND 1 = 1;
データベースシステムは、まず2つの比較を処理し、AND
演算子を使用して2つの結果を評価します。
しかし、短絡評価機能を使用すると、左側の部分(1 = 0)が偽を返すため、条件の右側の部分の結果に関係なく、条件全体が偽を返すため、データベースシステムは式の左側の部分だけを評価する必要があります。
したがって、短絡評価機能はCPUの計算時間を短縮し、場合によってはランタイムエラーの発生を防ぐのに役立ちます。次の条件を考えてみましょう。
1 = 0 AND 1/0;
データベースシステムが短絡評価機能をサポートしている場合、ゼロ除算エラーを引き起こす式の右側の部分(1/0)は評価されません。
これで、SQL AND演算子の動作と、クエリで複雑な条件を形成するためにそれを適用する方法を理解するはずです。