基本情報技術者試験 - 令和5年12月修了 - 問20

“社員” と “部門” 表に対して,次のSQL文を実行したときの結果はどれか。

SELECT COUNT(*)FROM 社員,部門 WHERE 社員.所属 = 部門.部門名 AND 部門.フロア = 2

社員
社員番号所属
11001総務
11002経理
11003営業
11004営業
11005情報システム
11006営業
11007企画
12001営業
12002情報システム
  部門
部門名フロア
企画1
総務1
情報システム2
営業3
経理2
法務2
購買2
ア1
イ2
ウ3
エ4
答え : ウ
分野 : テクノロジ系 › 技術要素 › データベース › データ操作
同一問題 : 〔令3修12問27〕〔平30修1問29〕〔平28秋問29〕
解説 :
「社員」表と「部門」表を結合し,フロアが2である部門に所属する社員の人数を数えるSQL文についての問題です。まず「部門」表を見ると,フロアが2である部門は,情報システム,経理,法務,購買の4つです。次に「社員」表を見て,これらの部門に所属している社員を数えます。

所属が情報システムの社員は「11005」と「12002」の2人,所属が経理の社員は「11002」の1人です。法務と購買に所属している社員は,社員表の中には見当たりません。したがって,条件に当てはまる社員の合計人数は2+1=3人となり,正解は「ウ」です。

不正解の選択肢は,フロアが2の部門を数え間違えたり,社員と部門の対応関係を正しく確認できていなかったりした場合に出やすい値です。このようなSQL文の結果を求める問題では,まずWHERE句の条件(この場合はフロアが2であること)を満たす部門を特定し,それに該当する社員を数え上げるという手順で確実に解いていくことが大切です。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる