平成23年 春期 データベーススペシャリスト 午前II 問11

“社員”表から、男女それぞれの最年長社員を除くすべての社員を取り出すSQL文とするために、aに入る副問合せはどれか。
ここで、“社員”表は次の構造とし、下線部は主キーを表す。

 社員(社員番号, 社員名, 性別, 生年月日)

SELECT 社員番号, 社員名 FROM 社員 AS S1
           WHERE 生年月日 > (   a   )

 ア  SELECT MIN(生年月日) FROM 社員 AS S2
                  GROUP BY S2.性別
 イ  SELECT MIN(生年月日) FROM 社員 AS S2
                  WHERE S1.生年月日 > S2.生年月日
                  OR S1.性別=S2.性別
 ウ  SELECT MIN(生年月日) FROM 社員 AS S2
                  WHERE S1.性別=S2.性別
 エ  SELECT MIN(生年月日) FROM 社員
                  GROUP BY S2.性別


答え ウ


解説
この命題の解き方は、“社員”表から任意の2人を選択し、性別が同じ場合、年少の社員を取り出す処理を行うとできます。
ここで、問題のSQL文では“社員”表から一人の社員(S1)を選択し生年月日を比較しようとしているので、  a  に入るのは、もう一人の社員(S2)を選択し、S1と比較し年長の社員の生年月日を出力すれば良いので、そのSQL文は『S1とS2が同性のとき、年長の社員の生年月日を出力』になり
 SELECT MIN(生年月日) FROM 社員 AS S2
                  WHERE S1.性別=S2.性別

(ウ)になります。

※生年月日のデータの値が小さい方が年長になります。


キーワード
・SQL文

キーワードの解説
  • SQL文
    データベースにアクセスするための言語である。
    SQLを使用すると、データベースからの表の抽出の定義や、データベースのデータ操作など、データベースに関する処理を記述することができます。
    なお、SQLは公式には何かの略語ではないとなっていますが、SQLを開発したIBMでは“Structured Query Language”の略語となっています。
    また、読み方も、“シークェル”と読む人と“エス・キュー・エル”と読む人がいます。

もっと、「SQL文」について調べてみよう。

戻る 一覧へ 次へ