ここから本文です

基本情報技術者 平成18年 春期 設問2 SQL 文 (3) と同じ実行結果が得られる...

nek********さん

2015/3/2819:59:45

基本情報技術者 平成18年 春期

設問2
SQL 文 (3) と同じ実行結果が得られると考え,SQL 文 (4) を実行したところ,異なる結果が得られた。

その理由を説明する次の記述中の [ ] に入れる正しい答えを,解答群の中から選べ。

SQL 文 (3)
SELECT 社員ID FROM 社員表
WHERE 年齢 < (SELECT MIN(年齢) FROM 家族表
WHERE 家族表.社員ID = 社員表.社員ID)

SQL 文 (4)
SELECT 社員ID FROM 社員表
WHERE 年齢 < ALL (SELECT 年齢 FROM 家族表
WHERE 家族表.社員ID = 社員表.社員ID)

SQL 文 (4) の限定子 ALL を使った限定比較の場合には, [ c ] 社員も抽出されるが,SQL 文 (3) のように集合関数と比較述語を使った場合は, [ c ] 社員は抽出されない。つまり,SQL 文 (4) の実行結果には,次の SQL 文 (5) によって抽出される社員も併せて抽出されることになる。



SQL 文 (4)で抽出されるデータと"ALL"の役割を教えて頂けたら嬉しいです
よろしくお願いします

閲覧数:
71
回答数:
1

違反報告

ベストアンサーに選ばれた回答

ain********さん

2015/3/2822:35:53

ALL はスカラー値と値のセットとを指定された演算子で比較し、ひとつでも結果が偽であれば偽を返し、そうでなければ真を返します。

年齢 < ALL (SELECT 年齢 FROM 家族表 WHERE 家族表.社員ID = 社員表.社員ID))

この問題の場合、年齢がスカラー値で、< が演算子、() の中が値のセットです。
家族の中に社員より若いものがいたときに偽を返します。つまり、家族がいない場合は真を返すことになります。ここが誤解を招きやすいところです。

一方、MIN は対象となる列がない場合は NULL を返します。
SQL文(3)は社員に家族がいない場合、社員の年齢とNULLを比較するので結果は偽です。

つまり、SQL(3)では家族がいない社員は抽出されず、SQL(4)では家族のいない社員も抽出されます。

質問した人からのコメント

2015/3/29 17:21:03

回答ありがとうございます!

Yahoo!しごと検索で探してみよう

SE の求人情報(2,443,979件)

プロジェクトマネージャー、リーダー(SI、受託開発)/ネ...
  • 日本テクロ株式会社
  • 正社員
  • 年収400万円〜800万円
  • 埼玉県・その他の勤務地(1)
イーキャリアFA
《葛西臨海公園駅》社内SE【経験者募集 土日祝休み 転勤な...
  • gf.K株式会社 本社
  • 正社員
  • 月給21.6万円〜
  • 東京都江戸川区
転職ナビ
社内SE《東証一部上場/福利厚生も充実》
  • 株式会社大塚商会
  • 正社員
  • 年収500万円〜800万円
  • 東京都江東区森下
パソナキャリア
【【大阪】社内SE/業界未経験歓迎◎完全週休2日制◎福利厚...
  • 大嘉産業株式会社
  • 正社員
  • 年収400万円〜550万円
  • 大阪府大阪市西区
IT転職ナビ
【大手企業/SEアシスタント】残業ほぼなし@烏丸御池 IT・...
  • パーソル パナソニック HRパートナーズ(株)
  • 派遣
  • 時給1,500円〜1,600円
  • 京都府京都市・その他の勤務地(1)
ジョブチェキ!
IT系 大手メーカーの案件メンバー(新大阪) 複数名募集 ...
  • 株式会社テクノウェイブ
  • 正社員
  • 月給30万円〜66.6万円
  • 大阪府大阪市淀川区
treee
【社内SE】セコムグループ傘下/技術面から営業サポートを...
  • (株)アロバ
  • 正社員
  • 年収500万円〜650万円
  • 東京都
Daijob.com
社内SE/年間休日120日/東京都 杉本興業株式会社
  • 杉本興業株式会社
  • 正社員
  • 年収450万円〜600万円
  • 東京都足立区
en ミドルの転職
VB.netを使用した営業支援システムの開発
  • 株式会社フジワーク(グランフロント大阪事業所)
  • 正社員
  • 月給19万円〜
  • 大阪府豊中市
イーアイデム
プログラマー ★☆VB.NET開発、SE/PGの人、常時募集してお...
  • 株式会社ビジネス・リンク
  • 契約社員
  • 月給35万円〜45万円
  • 東京都品川区
くるくるバイト

もっと見る >>

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる