修了試験 2012-06-24実施分 基本情報技術者試験 問31
次のSQL文の実行結果がA表のようになった。 aに入れるべき適切な字句はどれか。 SELECT S_CODE, S_NAME, BU_NAME FROM BUSHO, SHAIN WHERE [a] 〔表 BUSHO〕BU_CODE|BU_NAME|BU_CHO/S01|システム1部|1107/S02|システム2部|1110 〔表 SHAIN〕S_CODE|S_NAME|S_NENREI|S_SHOZOKU/1001|山本 一平|23|S01/1002|中谷 宏|25|S01/1003|鈴木 隆夫|23|S02/1004|佐藤 俊二|26|S01/1005|山崎 ひとみ|23|S02/1006|田中 五郎|25|S02/1107|山本 明|32|S01/1110|田中 和夫|30|S02 〔表A(実行結果)〕S_CODE|S_NAME|BU_NAME/1001|山本 一平|システム1部/1003|鈴木 隆夫|システム2部/1005|山崎 ひとみ|システム2部

正答1
解説
正解は1です。 SQL文の実行結果が表Aになるように、WHERE句の条件を選ぶ問題です。 図の表Aには、社員コード1001、1003、1005の3人が、所属部門の名前とともに表示されています。 SHAIN表を見ると、この3人は年齢(S_NENREI)が23の社員全員です。 また、BU_NAMEを正しく対応させるには、部門コード(BU_CODE)と所属(S_SHOZOKU)を一致させる結合条件が必要です。 【選択肢別解説】 1:○ 結合条件のBU_CODE = S_SHOZOKUで各社員に所属部門名が対応し、S_NENREI = 23で23歳の3人に絞られます。 表Aと完全に一致します。 2:× 年齢が23から25の社員が対象になるので、25歳の1002(中谷 宏)と1006(田中 五郎)も表示され、5行になります。 表Aと一致しません。 3:× BU_CHO = '1107'の条件で、システム1部だけに絞られます。 結果は1001の1行だけになり、システム2部の1003と1005が表示されません。 4:× 結合条件がないため、23歳の社員3人とBUSHO表の2行のすべての組合せ(直積)になります。 結果は6行となり、所属と異なる部門名も表示されます。 【ポイント】 FROM句に複数の表を書いたときは、WHERE句に結合条件を書かないと直積になります。 「結合条件+絞込み条件」をANDでつなぐ形が基本です。まとめて解く
修了試験 2012-06-24実施分を通しで解く(80問)→