概要:このチュートリアルでは、SQL比較演算子について学び、データのフィルタリング条件を形成する方法を習得します。
SQL比較演算子を使用すると、2つの式が同じかどうかをテストできます。次の表は、SQLの比較演算子を説明しています。
演算子 | 意味 |
---|---|
= | 等しい |
<> | 等しくない |
> | より大きい |
>= | 以上 |
< | より小さい |
<= | 以下 |
比較演算子の結果は、真、偽、不明の3つの値のいずれかになります。
等号演算子 (=)
等号演算子は、2つの式の等価性を比較します。
expression1 = expression2
Code language: SQL (Structured Query Language) (sql)
左側の式の値が右側の式の値と等しい場合、真を返します。そうでない場合は、偽を返します。
たとえば、次のステートメントは、姓がHimuro
である従業員を検索します。
SELECT
employee_id, first_name, last_name
FROM
employees
WHERE
last_name = 'Himuro';
Code language: SQL (Structured Query Language) (sql)

この例では、クエリはemployees
テーブルのlast_name
列に文字列Himuro
を検索します。
等号演算子はNULL値を比較するために使用できないことに注意してください。たとえば、次のクエリの意図は、電話番号を持たないすべての従業員を見つけることです。
SELECT
employee_id, first_name, last_name, phone_number
FROM
employees
WHERE
phone_number = NULL;
Code language: SQL (Structured Query Language) (sql)
しかし、次の式は常に偽を返すため、空の結果セットが返されます。
phone_number = NULL
Code language: SQL (Structured Query Language) (sql)
NULL値を比較するには、代わりにIS NULL
演算子を使用します。
SELECT
employee_id, first_name, last_name, phone_number
FROM
employees
WHERE
phone_number IS NULL;
Code language: SQL (Structured Query Language) (sql)

不等号演算子 (<>)
不等号(<>)演算子は、2つの非NULL式を比較し、左側の式の値が右側の値と等しくない場合に真を返し、そうでない場合は偽を返します。
expression1 <> expression2
Code language: SQL (Structured Query Language) (sql)
たとえば、次のステートメントは、部署IDが8ではないすべての従業員を返します。
SELECT
employee_id, first_name, last_name, department_id
FROM
employees
WHERE
department_id <> 8
ORDER BY first_name , last_name;
Code language: SQL (Structured Query Language) (sql)

AND
演算子を使用して、不等号(<>)演算子を使用する複数の式を組み合わせることができます。たとえば、次のステートメントは、部署IDが8と10ではないすべての従業員を検索します。
SELECT
employee_id, first_name, last_name, department_id
FROM
employees
WHERE
department_id <> 8
AND department_id <> 10
ORDER BY first_name , last_name;
Code language: SQL (Structured Query Language) (sql)

大なり演算子 (>)
大なり演算子(>)は、2つの非NULL式を比較し、左オペランドが右オペランドより大きい場合に真を返し、そうでない場合は偽を返します。
expression1 > expression2
Code language: SQL (Structured Query Language) (sql)
たとえば、給与が10,000より大きい従業員を検索するには、次のようにWHERE
句で大なり演算子を使用します。
SELECT
employee_id, first_name, last_name, salary
FROM
employees
WHERE
salary > 10000
ORDER BY salary DESC;
Code language: SQL (Structured Query Language) (sql)

AND
またはOR
演算子を使用して、さまざまな比較演算子を使用する式を組み合わせることができます。たとえば、次のステートメントは、部署が8で給与が10,000より大きい従業員を検索します。
SELECT
employee_id, first_name, last_name, salary
FROM
employees
WHERE
salary > 10000 AND department_id = 8
ORDER BY salary DESC;
Code language: SQL (Structured Query Language) (sql)

小なり演算子 (<)
小なり演算子は、2つの非NULL式を比較します。左オペランドが右オペランドの値より小さい値に評価される場合、結果は真になります。そうでない場合は、偽になります。
小なり演算子の構文を以下に示します。
expression1 < expression2
Code language: SQL (Structured Query Language) (sql)
たとえば、次のステートメントは、給与が10,000未満のすべての従業員を返します。
SELECT
employee_id, first_name, last_name, salary
FROM
employees
WHERE
salary < 10000
ORDER BY salary DESC;
Code language: SQL (Structured Query Language) (sql)

以上演算子 (>=)
以上演算子(>=)は、2つの非NULL式を比較します。左側の式が右側の式の値より大きい値に評価される場合、結果は真になります。
以上演算子の構文を以下に示します。
expression1 >= expression2
Code language: SQL (Structured Query Language) (sql)
たとえば、次のステートメントは、給与が9,000以上の従業員を検索します。
SELECT
employee_id, first_name, last_name, salary
FROM
employees
WHERE
salary >= 9000
ORDER BY salary;
Code language: SQL (Structured Query Language) (sql)

以下演算子 (<=)
以下演算子は、2つの非NULL式を比較し、左側の式の値が右側の式の値以下の場合に真を返し、そうでない場合は偽を返します。
以下演算子の構文を以下に示します。
expression1 <= expression2
Code language: SQL (Structured Query Language) (sql)
たとえば、次のステートメントは、給与が9,000以下の従業員を検索します。

このチュートリアルでは、比較演算子を使用して、指定された条件に基づいてデータをフィルタリングするための比較式を形成する方法を学習しました。