27
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-01-05

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

27
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?