26
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
26
Help us understand the problem. What are the problem?