条件に合うデータを抽出する③

💡前回の記事では、論理演算子を使用して、複数の条件に当てはまるデータの抽出を学びました。今回は前回の応用を学んでいきましょう。

IN

  • ORを使用して二つ以上の条件中で一つの条件だけ一致するデータを検索できました。

SELECT * 
FROM Customers 
WHERE Country = 'Germany' 
OR Country = 'France';
  • 上記と同様の場合Countryが重複されて条件が多ければ多いほど文章が長くなります。

SELECT * 
FROM Customers 
WHERE Country 
IN ('Germany', 'France');
  • このようにINを使用して一つにまとめることができます。

  • INは結果に含めたい値のリストを指定できるSQLの論理演算子です。データのタイプ関わらずリストの値はコンマ(,)で区切ります。

SELECT * 
FROM TableName 
WHERE ColumnName 
IN (Value1, Value2, ...);

Example

SELECT * 
FROM Customers 
WHERE Country 
IN ('Germany', 'France', 'Korea');

SELECT * 
FROM Customers 
WHERE Country = 'Germany' 
OR Country = 'France' 
OR Country = 'Korea';
  • 同様にORを使用して書き換えることもできます。


BETWEEN

  • ANDを使用して二つ以上の条件を全て一致するデータを検索できました。

SELECT * 
FROM Customers 
WHERE CustomerID >= 3 
AND CustomerID <= 5;
  • 上記の場合CustomerIDが重複されて条件が多ければ多いほど文章が長くなれます。なので、下記ようにANDを使用して構文を減らせます。

SELECT * 
FROM Customers 
WHERE CustomerID 
BETWEEN 3 
AND 5;
  • BETWEENはSQLで特定の範囲内にあるデータだけ選択できる論理演算子としてAND演算子と対をなして始まる値と終わりの値を含めます。

SELECT * 
FROM TableName 
WHERE ColumnName 
BETWEEN ConditionA 
AND ConditionB;
SELECT * 
FROM TableName 
WHERE ColumnName >= ConditionA 
AND ColumnName <= Conditoin B;

  • 同様にANDを使用して書き換えることもできます。

Example

  • 数字データを検索する場合です。

SELECT * 
FROM Products 
WHERE CustomerID 
BETWEEN 10 
AND 20;
  • 文字列データを検索する場合です。

SELECT * 
FROM Products 
WHERE CustomerID 
BETWEEN 'A' 
AND 'B';
  • 日付のデータを検索する場合です。

SELECT * 
FROM Orders 
WHERE CustomerOrder 
BETWEEN '2022-02-01' 
AND '2022-02-28';


IS NULL & IS NOT NULL

  • 今までは、各データの値が全て存在すると仮定したが、実際は空いている(NULL又はNaN)が場合があります。

  • テーブル内に入力されてないデータはNULLで保存され、IS NULLでNULL値を検索できます。NULLを検索する場合は=演算子ではなくてIS NULLを使用しなければなりません。逆にNULLではないデータを検索する場合はIS NOT NULLを使用すれば良いです。

SELECT * 
FROM Customers 
WHERE CustomerID IS NULL
  • NULLは特別な値なので=を使用して検索できません。

SELECT * 
FROM Customers 
WHERE CustomerID = NULL

Example

  • 例えば、下記ようなProductテーブルが存在する場合です。

SELECT * 
FROM Product 
WHERE ProductName IS NULL;
  • IS NULLを実行してNULLの場合を検索すると下記の結果が検索されます。

SELECT * 
FROM Product 
WHERE ProductName IS NOT NULL;


💯ここまでの学習お疲れ様でした!データ抽出の基本は網羅できたと思います。次回はデータの順番整列やクレンジングの側面でTipsを記事にしたいと思います。

いいなと思ったら応援しよう!