“社員”表と“部門”表に対して、次の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, 12002 の3行である。
問28 | 目次 | 問30 |