データベース初心者の基礎知識ブログ -5ページ目

あれもこれもの場合は OR で

論理演算子の AND 演算子が来れば、次は OR 演算子です。

AND 演算子は、「交わり」

OR 演算子は、「結び」

ですね。

20100825_03.jpg

この場合に、名前が「さとし」と「なおと」の行を抽出するためには、

SELECT * FROM 手帳

WHERE 名前 = 'さとし' OR 名前 = 'なおと'

になりますね。

20100827_09.jpg

もちろん、他の列名を指定することもできますよ。

名前が「きよし」、趣味が「車」の行を抽出するためには、

SELECT * FROM 手帳

WHERE 名前 = 'さとし' OR 趣味 = '車'

になりますね。

20100827_10.jpg

 

あれとこれは必ずの場合は AND で

今度は、検索する条件 WHERE 句の指定の仕方を学びます。

俗に「述語」という言い方がされますが、分かりにくいですね。

英語で云えば、predicate です。文法用語なので「述語」が割り当てられています、ってな感じです。

まあ、WHERE以降は、述語と言うんですね、と覚えておきましょう。

まず、複数の条件を並べて、あれとこれは必ず、というのが、

AND 演算子です。

「演算子」(英語でいえば、operator)という用語も、難しい単語ですが、先のエントリに書いた

「交わり」「結び」 のことです。

20100825_03.jpg

この中で、名前が「きよし」で、趣味が「車」な彼はどちらでしょう?という問題の場合、

SELECT * FROM 手帳

WHERE 名前 = 'きよし' AND 趣味 = '車'

のように「AND」で繋げて書きます。

20100826_15.jpg

こんな風に検索結果が取れます。

では、次のように、名前が「きよし」、趣味が「映画」の場合はどうでしょうか?

SELECT * FROM 手帳

WHERE 名前 = 'きよし' AND 趣味 = '映画'

この場合は、検索にマッチしないので、何も返ってきませんね。

重複を避けるためには DISTINCT で

行がダブっていることを「重複」と言います。

データを取り出すときに、ダブっているとちょっと困る場合があるので、このダブりを消すために DISTINCT というのを使います。

例えば、次の手帳から、

20100825_03.jpg

趣味はどんなのがあるだろうという訳で、

SELECT 趣味 FROM 手帳

こんな風に趣味だけを取り出すとですね、

20100826_12.jpg

「車」や「旅行」などがダブってしまうんですね。

これを、ひとつずつにする場合は、

SELECT DISTINCT 趣味 FROM 手帳

のように書くと、

20100826_13.jpg

無事、重複な行を消すことができます。

ええと、この DISTINCT は複数の列も指定できます。

「ID」と「趣味」を指定した場合は、ひと組でチェックするので、結果的に全ての表示になりますね。

SELECT DISTINCT ID, 趣味 FROM 手帳

の場合は、こんな風になります。

20100826_14.jpg