【SQL入門編③】データの絞り込み条件を決めよう!

【SQL入門編③】データの絞り込み条件を決めよう!

前回のおさらい

前回の記事では、以下のusersテーブルに対して、

idnamegenderagecreated_at
1太郎男性402022-1-1 12:20:48
2よしお男性312022-1-1 15:40:39
3SAKI女性342022-1-2 06:00:21
4れいか女性302022-1-3 10:00:40
5ジム男性292022-1-3 10:06:01
usersテーブル

以下のクエリ(SQLで書かれた、データベースへの命令文のこと)を書くことで、

SELECT
    name
FROM
    users

以下の登録ユーザー名を抽出しましたね!

name
太郎
よしお
SAKI
れいか
ジム
usersテーブルのnameカラム

ただ、このクエリだと、全ての登録ユーザー名が抽出されてしまいます。
では、女性の登録ユーザー名のみが知りたい場合は、どんなクエリを書けば良いでしょうか?

この記事では、「データの絞り込み」について勉強していきましょう!

まずは抽出の流れを理解しよう

①テーブルを選ぶ

始めに、ユーザー名が格納されている、以下のusersテーブルを選びます。
ここまでは、前回と同じですね!

idnamegenderagecreated_at
1太郎男性402022-1-1 12:20:48
2よしお男性312022-1-1 15:40:39
3SAKI女性342022-1-2 06:00:21
4れいか女性302022-1-3 10:00:40
5ジム男性292022-1-3 10:06:01
usersテーブル

②テーブルのデータを絞り込む

このタイミングで、先ほどのusersテーブルを女性登録ユーザーだけに絞り込みます。

これは言い換えると、

genderカラムが女性のレコードのみに絞る

といえますね。

このように絞り込んだ結果、テーブルは以下のようになります。

idnamegenderagecreated_at
3SAKI女性342022-1-2 06:00:21
4れいか女性302022-1-3 10:00:40
usersテーブルが女性のレコードだけに絞られた

③抽出したいデータを選ぶ

最後に、先ほど女性だけに絞り込んだusersテーブルで、nameカラムを選んで抽出完了です!

name
SAKI
れいか
女性登録ユーザー名が抽出できた

抽出の流れはイメージできましたか?
それでは、具体的なSQLの書き方に移りましょう!

SQLで抽出してみよう

①FROMでテーブルを選ぶ

テーブルを選ぶ際は、FROM テーブル名と書く必要がありましたね!
今回はusersテーブルからデータを抽出するので、以下のように書きましょう。

FROM
    users

②WHEREでテーブルを絞り込む

さて、WHEREという新しい単語が出てきましたね。
FROM テーブル名の後ろに WHERE 絞り込み条件と書くことで、テーブルを絞り込むことができます!

今回は、genderカラムが女性のレコードだけに絞り込みたいので、以下のように書きます。

FROM
    users
WHERE
    gender = "女性"

このように、gender と "女性" を 「=」で繋いで

gender = "女性"

と書くことで、

genderカラムが「女性」という値である

という絞り込み条件ができました。
これで、genderカラムが「女性」のレコードだけに絞ることができました!

※ 絞り込み条件には様々な書き方があるので、後で詳しくご説明します!

③SELECTで抽出したいデータを選ぶ

テーブル内のカラムを選ぶ際は、SELECT カラム名と書く必要がありましたね。
今回はユーザー名が知りたいので、nameカラムを抽出しましょう。

SELECT
    name
FROM
    users
WHERE
    gender = "女性"

これでSQL文が完成しました!

この SELECT, FROM, WHEREの三つの単語は、クエリを書く上でほぼ100%使う単語なので、ぜひ覚えておきましょう!

(毎日風呂に入りながら「セレクト、フロム、ウェアー」「セレクト、フロム、ウェアー」と呪文のように唱えると、暗記しやすいのでおすすめです(笑))

WHERE句の書き方例

idnamegenderagecreated_at
1太郎男性402022-1-1 12:20:48
2よしお男性312022-1-1 15:40:39
3SAKI女性342022-1-2 06:00:21
4れいか女性302022-1-3 10:00:40
5ジム男性292022-1-3 10:06:01
usersテーブル

上記のusersテーブルを例に、絞り込み条件の書き方を7つご紹介します!
ぜひ、それぞれの抽出条件でどのようにテーブルが絞り込まれるのか、予想してみてください!

例1)   id = 3    
例2)   name = "よしお"
例3)   age > 30
例4)   age >= 30
例5)   age <= 30
例6)   created_at < "2022-1-3 00:00:00"
例7)   gender = "男性" and age = 40

練習問題

idnamegenderagecreated_at
1太郎男性402022-1-1 12:20:48
2よしお男性312022-1-1 15:40:39
3SAKI女性342022-1-2 06:00:21
4れいか女性302022-1-3 10:00:40
5ジム男性292022-1-3 10:06:01
usersテーブル

練習問題①

usersテーブルの中から、男性かつ30歳以上のnameカラムの値を抽出するクエリを書いてください。

練習問題②

usersテーブルの中から、
女性 かつ 30歳未満 かつ 2022年1月3日00時00分00秒以降に作成されたレコードの、nameカラムの値を抽出するクエリを書いてください。

これでデータの絞り込み条件については学習完了です!


「WHERE」は今後も使用頻度が高いので、ぜひ「SELECT」「FROM」とのセットで覚えておきましょう!
(今日中に、「セレクト、フロム、ウェアー」の呪文を100回唱えましょう)

-SQL
-, ,