基本情報技術者平成17年春期 午前問60

問60

国語と数学の試験を実施し,2教科の成績は氏名とともに"得点"表に記録されている。1教科は平均点以上で,残りの1教科は平均点未満の生徒氏名を"得点"表から抽出するSQL文はどれか。ここで,条件文Aと条件文Bには,それぞれ次の条件が与えられているものとする。

〔条件文〕
A 国語の点数が国語の平均点以上
B 数学の点数が数学の平均点以上
  • SELECT 生徒氏名 FROM 得点
     WHERE (A AND B) AND NOT (A AND B)
  • SELECT 生徒氏名 FROM 得点
     WHERE (A AND B) AND NOT (A OR B)
  • SELECT 生徒氏名 FROM 得点
     WHERE (A OR B) AND NOT (A AND B)
  • SELECT 生徒氏名 FROM 得点
     WHERE (A OR B) AND NOT (A OR B)
  • [出題歴]
  • 初級シスアド H15春期 問31

分類

テクノロジ系 » データベース » データ操作

正解

解説

選択肢を見ると異なっているのはWHERE句以降の条件式だけなので、この部分が正しい結果を返すかを検証していきます。ANDは論理積、ORは論理和を表します。

表からの抽出条件である"1教科は平均点以上で,残りの1教科は平均点未満"をベン図で表現すると次のようになります。少なくとも1教科が平均点以上である部分集合から、両方が平均点以上である部分集合を除いた部分となります。
60.png/image-size:150×135
それぞれの条件式も同様にベン図で表現してみると、「ウ」が一致することがわかります。
  • 60a.png/image-size:500×121
  • 60i.png/image-size:500×121
  • 60u.png/image-size:500×121
  • 60e.png/image-size:500×121
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop