ウカマル応用情報技術者ログイン

平成28年度 秋期 応用情報技術者 問29

テクノロジ系

“サッカーチーム”表と“審判”表から,条件を満たす対戦を導出するSQL文のaに入れる字句はどれか。

〔条件〕 ・出場チーム1のチーム名は出場チーム2のチーム名よりもアルファベット順で先にくる。 ・審判は,所属チームの対戦を担当することはできない。

サッカーチーム

チーム名
X
Y
Z

審判

氏名所属チーム名
佐藤健太X
鈴木翔太Y
高橋拓也Z

対戦

出場チーム1出場チーム2審判氏名
XY高橋拓也
XZ鈴木翔太
YZ佐藤健太
〔SQL文〕
SELECT A.チーム名 AS 出場チーム1, B.チーム名 AS 出場チーム2,
  C.氏名 AS 審判氏名
  FROM サッカーチーム AS A, サッカーチーム AS B, 審判 AS C
  WHERE A.チーム名 < B.チーム名 AND a
選択肢
正解と解説

正解 イ

審判の所属チームが、対戦する2チームのどちらでもないことを表す条件は、C.所属チーム名 NOT IN (A.チーム名, B.チーム名) です。

FROM句の3表の直積から、A.チーム名 < B.チーム名 で(X,Y)、(X,Z)、(Y,Z)の3組に絞ります。各組に審判3人が組み合わさるので9行です。NOT IN (A.チーム名, B.チーム名) は、C.所属チーム名がAとBのどちらとも等しくないときに真になります。これで(X,Y)には高橋拓也、(X,Z)には鈴木翔太、(Y,Z)には佐藤健太だけが残り、対戦表の3行と一致します。

ア:A≠Bなので、Cの所属がA、Bの両方と等しくなることはなく、ORの条件は常に真になります。9行すべてが残り、正しくはANDで結ぶ必要があります。

ウ:副問合せが審判Cを参照していないため、どの組にも3番目のチームの審判Dが存在し、常に真になります。9行すべてが残ります。

エ:どのチームにも所属する審判がいるので、AかBに所属する審判Dは必ず存在します。NOT EXISTSは常に偽になり、1行も残りません。

出典:平成28年度 秋期 応用情報技術者試験 問29

全年度から出題。10問で実力を判定します。登録不要。

出典:平成28年度 秋期 応用情報技術者試験 問29(独立行政法人情報処理推進機構)

解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方