あれとこれは必ずの場合は AND で
今度は、検索する条件 WHERE 句の指定の仕方を学びます。
俗に「述語」という言い方がされますが、分かりにくいですね。
英語で云えば、predicate です。文法用語なので「述語」が割り当てられています、ってな感じです。
まあ、WHERE以降は、述語と言うんですね、と覚えておきましょう。
まず、複数の条件を並べて、あれとこれは必ず、というのが、
AND 演算子です。
「演算子」(英語でいえば、operator)という用語も、難しい単語ですが、先のエントリに書いた
この中で、名前が「きよし」で、趣味が「車」な彼はどちらでしょう?という問題の場合、
SELECT * FROM 手帳
WHERE 名前 = 'きよし' AND 趣味 = '車'
のように「AND」で繋げて書きます。
こんな風に検索結果が取れます。
では、次のように、名前が「きよし」、趣味が「映画」の場合はどうでしょうか?
SELECT * FROM 手帳
WHERE 名前 = 'きよし' AND 趣味 = '映画'
この場合は、検索にマッチしないので、何も返ってきませんね。
重複を避けるためには DISTINCT で
行がダブっていることを「重複」と言います。
データを取り出すときに、ダブっているとちょっと困る場合があるので、このダブりを消すために DISTINCT というのを使います。
例えば、次の手帳から、
趣味はどんなのがあるだろうという訳で、
SELECT 趣味 FROM 手帳
こんな風に趣味だけを取り出すとですね、
「車」や「旅行」などがダブってしまうんですね。
これを、ひとつずつにする場合は、
SELECT DISTINCT 趣味 FROM 手帳
のように書くと、
無事、重複な行を消すことができます。
ええと、この DISTINCT は複数の列も指定できます。
「ID」と「趣味」を指定した場合は、ひと組でチェックするので、結果的に全ての表示になりますね。
SELECT DISTINCT ID, 趣味 FROM 手帳
の場合は、こんな風になります。