【SQL超入門講座】04.WHERE|特定の条件でデータを抽出する方法

sql超入門04
SQL超入門講座

こんにちは。

前回のレッスンでは、SELECT文について説明をしました。
指定するカラムを指定したり、すべてのカラムを指定する方法について説明をしました。
では、特定の条件でデータを抽出する場合はどのようにしたらいいでしょうか?
その時に使うのが今回のレッスンで説明をするWhereです。
プログラミング言語のPythonのライブラリPandas入門講座をみていただいている方は、Pandas入門講座レッスン7で紹介したqueryメソッドと同じ働きだと考えてもらってよいです。
Pandasのqueryメソッドをやったことある方は、SQLのWhereがすぐに頭に入ってくると思いますし、反対にSQLのWhereを理解できればPandasのqueryメソッドもすぐにわかると思います。
SQLのレッスンでは、Pandasの対応についても紹介していきます。
データ加工が得意のPythonのPandasを学習したことのない方はぜひ、そちらも学んでみてください。


それでは、レッスンスタートです。

この記事の執筆・監修

キノコード
キノコード    

テクノロジーアンドデザインカンパニー株式会社のCEO。
日本最大級のプログラミング教育のYouTubeチャンネル「キノコード」や、プログラミング学習サービス「キノクエスト」を運営。
著書「あなたの仕事が一瞬で片付くPythonによる自動化仕事術」や、雑誌「日経ソフトウエア」や「シェルスクリプトマガジン」への寄稿など実績多数。

WHEREとは

WHEREは、SELECT文にWHEREを付けることで、テーブルの中の特定の条件の行を取得できます。
列指定はSELECTで、行指定はWHEREですると覚えておけば良いでしょう。

WHEREの使い方

それでは、実際にSELECT文にWHEREを追加し、行単位で抽出してみましょう。
まず最初に、WHEREを追加したSELECT文の構文をみてみましょう。

SELECT カラム名 
FROM テーブル名 
WHERE 条件式;


WHEREは、FROMの後に付けます。
条件式にはイコールや大なり、小なり、否定などの使った式が入ります。
具体例をみてみましょう。

SELECT * 
FROM test_table 
WHERE id = 2


前回使用したテーブルから、idが2のデータのみ取得します。
Whereと書いて、id = 2という条件式を記述することで、idが2のデータだけを抽出することができます。
SELECTの後のアスタリスクはテーブルのすべての列を取得するという意味でしたね。
なので、このSQLは日本語に直すと「test_tableテーブルからidが2のデータをすべての列取得する」という意味になります。

SELECT * 
FROM test_table 
WHERE id <= 2

さらに、条件式に大なりや小なりを使うことで、〇〇以上、〇〇以下のデータの抽出もできるようになります。
このSQLを実行すると、以下の通りidが2以下の行が抽出されます。

SELECT * 
FROM test_table 
WHERE id >= 2


2以上の場合はこれ。

SELECT * 
FROM test_table 
WHERE id > 2

超えるはこれ、

SELECT * 
FROM test_table 
WHERE id < 2


未満はこれでしたよね。

SELECT *
FROM test_table 
WHERE id != 2


また、例えば「idが2以外のデータ」のような否定を使いたい場合は、エクスクラメーション、イコールという書き方になります。¥
このSQLを実行すると、以下の通りidが2以外の行が抽出されます。
実行します。

SELECT * 
FROM test_table 
WHERE 商品名 = 'ニット'


ここまでidを使ってWHEREの説明をしてきましたが、次はnameを使って条件式を組み立ててみましょう。
idは数値でしたがnameは文字列なので、条件式には文字列を入れる必要があります。
SQLでは、文字列はシングルクォートで囲む必要があります。
では試しに商品名でニットを指定してデータを抽出してみます。
次のSQLを実行します。

SELECT * 
FROM test_table 
WHERE 商品名 != 'ニット'


このSQLを実行すると、以下の通りnameがAkiyamaの行が抽出されます。

nameが文字列なので大なり、小なりは使わないですが、否定に関しては数値と同じように使用できます。

以上が、基本的なWHEREの使い方です。

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト