本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成28年度 秋期 基本情報技術者試験問題と解説

問29

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

 SELECT COUNT(*) FROM 社員, 部門
  WHERE 社員.所属 = 部門.部門名 AND 部門.フロア = 2
  社員            部門
 ┌────┬──────┐ ┌──────┬───┐
 │社員番号│  所 属  │ │ 部 門 名 │フロア│
 ┝━━━━┿━━━━━━┥ ┝━━━━━━┿━━━┥
 │ 11001 │総務    │ │企画    │ 1 │
 ├────┼──────┤ ├──────┼───┤
 │ 11002 │経理    │ │総務    │ 1 │
 ├────┼──────┤ ├──────┼───┤
 │ 11003 │営業    │ │情報システム│ 2 │
 ├────┼──────┤ ├──────┼───┤
 │ 11004 │営業    │ │営業    │ 3 │
 ├────┼──────┤ ├──────┼───┤
 │ 11005 │情報システム│ │経理    │ 2 │
 ├────┼──────┤ ├──────┼───┤
 │ 11006 │営業    │ │法務    │ 2 │
 ├────┼──────┤ ├──────┼───┤
 │ 11007 │企画    │ │購買    │ 2 │
 ├────┼──────┤ └──────┴───┘
 │ 12001 │営業    │
 ├────┼──────┤
 │ 12002 │情報システム│
 └────┴──────┘

ア 1  イ 2  ウ 3  エ 4


正解


解説

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

部門テーブルのフロア = 2で、社員テーブルの所属 = 部門テーブルの部門名の条件に一致する行の数を数えるということである。

つまり、社員テーブルの中で所属が、情報システム、経理、法務、購買のいずれかの行を数えることになる。
該当するのは社員番号が 11002, 11005, 120023行である。

問28 目次 問30