SQL WHERE句の使い方と効果的な活用法

SQLの勉強をしているけれど、

・データベースからデータを抽出する方法が分からない…。
・どの演算子を使えば適切なデータを抽出できるか分からない…。

こんな悩みはありませんか?そこで、この記事では、

・WHERE句を使用したデータ抽出方法
・演算子を用いた条件の指定方法

について詳しく解説します。

SQL WHERE句の役割

SQLのWHERE句の役割は、条件を指定してデータテーブルの中から必要なデータを抽出することです。例えば、特定のキーワードを含む文字列や、指定した数よりも大きい数値などの条件をWHERE句で記述できます。

データテーブル内に膨大なデータが含まれている場合であっても、WHERE句を使えば特定の条件を満たすデータを簡単に取得することが可能です。

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

単一条件の指定の方法

条件を1つだけ指定してデータを抽出したい場合、次のような形でWHERE句を記述します。

例えば、以下のようなFoodという名称のテーブルから、styleの列が和食という単一条件を満たすデータを抽出するWHERE句は次の通りです。

Foodテーブル

WHERE句の例

フィールド名に「*」を指定すると、テーブル内の全てのフィールドを対象としてデータを抽出できます。

▼出力結果

 

複数の条件の組み合わせ

2つ以上の条件を組み合わせたい場合、論理演算子のANDまたはORを用います。各演算子の役割や使い方は次の通りです。

AND演算子:複数の条件を満たすデータを抽出

複数の条件をすべて満たすデータを抽出したい場合、AND演算子を使います。例えば、先ほどのFoodテーブルの中から、styleがイタリアンでkcal300未満のデータを抽出するWHERE句は次の通りです。

WHERE句の例

▼出力結果

 

OR演算子:いずれかの条件を満たすデータを抽出

複数の条件のいずれかを満たすデータを抽出したい場合、OR演算子を使います。例えば、styleが和食または中華のデータを抽出するWHERE句は次の通りです。

WHERE句の例

▼出力結果

 

比較演算子(=<><=>=<>!=)の活用

比較演算子を使うと、データの一致や大小などの条件指定が可能です。比較演算子はWHERE句の中でよく用いられます。

比較演算子 意味  
= 演算子の左右の値が等しい  
<   演算子の左の値が右の値より小さい  
>   演算子の左の値が右の値より大きい  
<=   演算子の左の値が右の値より小さい、または等しい  
>=   演算子の左の値が右の値より大きい、または等しい  
<> または !=   演算子の左右の値が等しくない

例えば、Foodテーブルでkcal300より小さく、かつstyleが和食ではないデータを抽出するWHERE句は次の通りです。

WHERE句の例

▼出力結果

 

検索に便利な演算子

ここからは、検索条件を絞り込むために便利な「LIKE」、「BETWEEN」、「IN」、「NOT」演算子について解説します。

LIKE

LIKE演算子は特定の条件に一致する文字列を検索できる演算子です。ワイルドカードと呼ばれる特殊文字を含めてLIKE演算子を使うと、部分一致や前方一致、後方一致など細かな条件を指定できます。ワイルドカードは、0文字以上の任意の文字列を表す%と、一文字の任意の文字を表す_2種類です。

例えば、Foodテーブルでallergensの値に「卵」を含むデータを抽出したい場合、WHERE句は次のように記述します。

WHERE句の例

「卵」の前後に%を付けると、allergenの値が「卵」のみの場合や「卵、ごま」、「小麦、卵」など部分一致する様々なパターンの指定が可能です。

▼出力結果

また、nameの値が「丼」で終わる後方一致のデータを抽出したい場合は、「丼」の前に%を付けます。

WHERE句の例

▼出力結果

 

BETWEEN演算子:範囲の指定

BETWEEN演算子を使うと、最小値と最大値を指定し、それらの範囲内にあるデータを抽出できます。例えば、Foodテーブルのkcal200から400の間にあるデータを抽出するWHERE句は次の通りです。

WHERE句の例

▼出力結果

 

IN演算子:値の指定

IN演算子は、指定した複数の値のいずれかに一致するデータを抽出できる演算子です。IN演算子を使うと、複数の条件を満たすデータを効率的に抽出できます。

例えば、Foodテーブルでnumberの値が030507のデータを抽出するWHERE句は次の通りです。

WHERE句の例

▼出力結果

 

NOT演算子:指定した条件でないデータを抽出

NOT演算子を使うと、指定した条件にあてはまらないデータを抽出できます。ほかの演算子とNOT演算子の組み合わせにより、複雑な条件を指定することが可能です。

例えば、次のようなWHERE句を記述すると、Foodテーブルのallergensに卵を含まないデータを抽出できます。

WHERE句の例

▼出力結果

 

NULL値の取り扱い

SQLにおいて、値が存在しない場合や不明な場合はNULLと呼ばれる特別な値で表されます。例えば、下記のようなCustomerテーブルで、値が存在しないデータにはNULL値が割り当てられます。

Customerテーブル

これは、3番目の高橋三子さんのメールアドレスが不明な場合を表す例です。

 

IS NULL:NULLの指定

NULL値を含むデータを抽出したい場合、IS NULLという特別な演算子を使います。例えば、CustomerテーブルでmailNULLのデータを抽出するWHERE句の書き方は次の通りです。

WHERE句の例

mailの値がNULLの場合に条件が真(TRUE)となり、次のような結果が出力されます。

▼出力結果

 

IS NOT NULL:NULL以外の指定

IS NOT NULLという演算子を使うと、NULL値を含まないデータを抽出できます。例えば、CustomerテーブルでmailNULLではないデータを抽出するWHERE句は次の通りです。

WHERE句の例

mailの値がNULLではない場合に条件が真(TRUE)となり、次のような結果が出力されます。

▼出力結果

 

まとめ

SQLのWHERE句を使うと、様々な条件を指定し、必要なデータを抽出することが可能です。WHERE句には複数の演算子があり、値の大小関係や文字列の一致、複数条件の組み合わせなどを表現できます。WHERE句の記述方法を学び、データベースの検索に役立てましょう。

SQLのWHERE句を詳しく知りたい人には、下記の講座がおすすめです。

Udemyおすすめ講座

【忙しい人向け】1日で学ぶSQL基礎【初心者】

【忙しい人向け】1日で学ぶSQL基礎【初心者】

4(5 件の評価)

56 人の受験生

作成者: プログラミング 研究所(PHP/JavaScript/Python)

SQLの基礎を覚えよう

\無料でプレビューをチェック!/

講座を見てみる

レビューの一部をご紹介

評価:★★★★★
初心者向けでわかりやすい。簡単な内容の中に、現場では実際どう使っているかも入ってるので勉強になります

評価:★★★★★
簡潔でわかりやすい。初心者なのでこれくらいでちょうどいい。

データベースのプログラム言語を習得して、業務効率化に取り組みましょう!