SQL

SQLデータ分析入門#3『WHERE句を理解する』

SQLデータ分析入門#2『SELECT ~ FROM ~ を理解する』 - Qiita
の続き

本記事のスコープ

  • 「WHERE」の意味がわかる
  • andやorで条件をつなげることができる

1行で説明すると

条件に応じたものだけ表示する、フィルタみたいなもの

その前に条件の書き方

これだけは覚えてほしい

image.png
※ NULL対応ってやつはいいや

いずれわかればいい

image.png

比較演算子 - MySQLの基本構文 - MySQLの使い方より

例えば

こんなテーブルがあったときの実行結果
image.png

ある1つの条件を満たしたものをとってくる

IDが1

SELECT *
FROM User
WHERE ID = 1

image.png

性別がf

SELECT *
FROM User
WHERE 性別 = "f" -- 文字(列)は""か''で囲むべし

image.png

身長が170以上

SELECT *
FROM User
WHERE 身長 >= 170

image.png

2つの条件”両方”満たしたものをとってくる(AND条件)

身長が170以上の女性(f)

SELECT *
FROM User
WHERE 身長 >= 170 AND 性別 = "f"

image.png

2つの条件”いずれかを”満たしたものをとってくる(OR条件)

身長が170以上か、男性(m)

SELECT *
FROM User
WHERE 身長 >= 170 OR 性別 = "m"

image.png

複数の条件を満たしたものを取ってくる

IDが1か3か5

SELECT *
FROM User
WHERE
   ID = 1
   OR ID = 3
   OR ID = 5

image.png

IN句を使うことで、同じ内容をこのようにも書ける

SELECT *
FROM User
WHERE ID in (1, 3, 5)

IDが1か3か5の、女性

ANDとORを組み合わせるときは要注意。
読みやすさと、間違えにくさの観点から、()でくくると優先されるというルールを活用する
詳細は:複数条件での検索(AND, OR) » MySQL入門 | MySQL入門

SELECT *
FROM User
WHERE
   (
    ID = 1
    OR ID = 3
    OR ID = 5
   )
   AND 性別 = "f"

推薦図書

よくあるSQL本はエンジニア向けなのですが、この本は分析をしたいだけの人に向いてます。

前後の記事

SQLデータ分析入門#1『SQLってなんだ』 - Qiita
SQLデータ分析入門#2『SELECT ~ FROM ~ を理解する』 - Qiita
SQLデータ分析入門#3『WHERE句を理解する』 - Qiita
SQLデータ分析入門#4『LIMIT句を理解する』 - Qiita
SQLデータ分析入門#5『集計関数を理解する』 - Qiita
SQLデータ分析入門#6『結果の順番をいい感じにする』 - Qiita
SQLデータ分析入門#7『複数のテーブルにまたがって集計する』 - Qiita
SQLデータ分析入門#8『基本的な関数を知る』 - Qiita