SQL 速習チュートリアル

SQL NOT 演算子

1. NOT 演算子

NOT 演算子は、指定した条件に一致しないすべてのレコードを返すために WHERE 句で使用されます。これは条件の結果を反転させ、真(true)を偽(false)に、偽を真に変換します。

以下の SQL は、国(Country)が「Spain」ではないすべての顧客を選択します。

1.1 使用例:独自の SQL サーバーを構築

「Spain」ではない顧客のみを選択する場合:

SELECT * FROM Customers
WHERE NOT Country = 'Spain';

上記の例では、NOT 演算子が = 演算子と組み合わせて使用されています。

また、NOT 演算子は他の演算子と組み合わせて、特定のデータを除外するためにも頻繁に使用されます。例として以下のような組み合わせがあります。

  • NOT LIKE
  • NOT BETWEEN
  • NOT IN
  • IS NOT NULL
  • NOT EXISTS

2. NOT の構文

SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;

3. デモ用データベース

以下は、各例で使用されている Customers テーブルからの抜粋です。

顧客ID顧客名担当者名住所都市郵便番号
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

4. NOT LIKE 演算子

NOT LIKE 演算子は、指定された文字列パターンに一致する行を WHERE 句で除外するために使用されます。

NOT LIKE 演算子と組み合わせてよく使われる 2 つのワイルドカードがあります。

  • パーセント記号 %0 文字、1 文字、または複数文字を表します。
  • アンダースコア記号 _単一の文字を表します。

以下の SQL は、顧客名(CustomerName)が "A" で始まらないすべての顧客を選択します。

4.1 使用例

"A" で始まらない顧客を選択する場合:

SELECT * FROM Customers
WHERE CustomerName NOT LIKE 'A%';

5. NOT BETWEEN 演算子

NOT BETWEEN 演算子は、値が指定された範囲(境界値を含む)の外にある行を WHERE 句で選択するために使用されます。

NOT BETWEEN 演算子は、数値、テキスト、または日付型の値に使用できます。

以下の SQL は、顧客ID(CustomerID)が 10 から 60 の間ではないすべての顧客を選択します。

5.1 使用例

CustomerID が 10 から 60 の間にない顧客を選択する場合:

SELECT * FROM Customers
WHERE CustomerID NOT BETWEEN 10 AND 60;

6. NOT IN 演算子

NOT IN 演算子は、指定されたリスト内またはサブクエリの結果セット内のいずれの値にも一致しない行を WHERE 句で除外するために使用されます。

以下の SQL は、都市(City)が "Paris" または "London" ではないすべての顧客を選択します。

6.1 使用例

Paris または London ではない都市の顧客を選択する場合:

SELECT * FROM Customers
WHERE City NOT IN ('Paris', 'London');

7. NOT Greater Than (~より大きくない)

SQL において「~より大きくない」という条件は、通常、標準的な「以下」を意味する >= 演算子で表現されます。しかし、NOT を使用して表現することも可能です。

以下の SQL は、CustomerID が 50 より大きくないすべての顧客を選択します。

7.1 使用例

CustomerID が 50 より大きくない顧客を選択する場合:

SELECT * FROM Customers
WHERE NOT CustomerID > 50;

8. NOT Less Than (~より小さくない)

SQL において「~より小さくない」という条件は、通常、標準的な「以上」を意味する <= 演算子で表現されます。

以下の SQL は、CustomerID が 50 より小さくないすべての顧客を選択します。

8.1 使用例

CustomerID が 50 より小さくない顧客を選択する場合:

SELECT * FROM Customers
WHERE NOT CustomerID < 50;