SQL初めてのSQL

Day 1取り出す — SELECT でデータを読む

WHERE — 条件に合う行だけ絞り込む

WHERE を使って「20歳以上の人だけ」「名前が太郎の人だけ」のように、条件に合う行だけを取り出す方法を読めるようにします。

全部じゃなくて「この条件の人だけ」

SELECT と FROM だけだと、表の全部の行が出てきます。でも実際には「20歳以上の人だけ見たい」「名前が太郎の人だけ探したい」ということがよくあります。そんなときに使うのが WHERE(ホエア)です。

たとえるなら、名簿を全員分めくるのではなく「20歳以上の人だけ抜き出してください」と条件を付けてお願いする感じです。WHERE のうしろに、その条件を書きます。

SQL
SELECT name, age
FROM users
WHERE age >= 20;
age(年齢)が20以上の行だけを取り出す

この文はこう読めます。「users から name と age を取り出す。ただし age が20以上の行だけ」。>= は「以上」という意味の比較の記号(比較演算子)です。

  • = は「等しい」(例: age = 20 は20ちょうど)
  • >= は「以上」、<= は「以下」
  • > は「より大きい」、< は「より小さい」
  • <> は「等しくない」
SQL
SELECT name
FROM users
WHERE name = "太郎";
name が「太郎」の行だけを取り出す。文字は " " で囲む

AND と OR で条件を組み合わせる

AND は「両方とも満たす」、OR は「どちらか片方でも満たす」です。WHERE age >= 20 AND name = "太郎" なら「20歳以上、かつ、名前が太郎」。AND を OR に変えると「20歳以上、または、名前が太郎」になります。

文字は囲む、数字は囲まない

太郎のような文字(文字列)は "太郎" のように引用符で囲みます。20 のような数字はそのまま書きます。引用符の付け忘れ・付けすぎはよくあるつまずきなので注意しましょう。

AIにはこう聞く

「users から、年齢が20以上で、かつ名前が太郎の行を取り出す SQL を書いて。WHERE の条件がどう働くか日本語で説明して」

読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。

理解度チェック

答えられれば、面接で説明できる状態に一歩近づきます。

Q1

WHERE age >= 20 はどんな行を取り出す?

Q2

WHERE age >= 20 AND name = "太郎" の意味はどれ?

Q3

WHERE は何のために使うのか、そして AND と OR の違いを一言で説明してみましょう。

記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。