基本情報技術者令和5年免除 問21

問21

国語と数学の試験を実施し,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)
  • [出典]
  • 午前免除試験 R5-7月 問20
  • 基本情報技術者 H17 問60と同題

分類

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

正解

解説

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

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

Pagetop