2020年 秋期 データベーススペシャリスト 午前II 問8

“社員”表に対して、SQL文を実行して得られる結果はどれか。 ここで、実践の下線は主キーを表し、表中のNULLは値が存在しないことを表す。

社員
社員コード 上司 社員名
S001 NULL A
S002 S001 B
S003 S001 C
S004 S003 D
S005 NULL E
S006 S005 F
S007 S006 G

[SQL文]
 SELECT 社員コード FROM 社員 X
    WHERE NOT EXISTS
       (SELECT * FROM 社員 Y WHERE X.社員コード=Y.上司)

 ア  社員コード
S001
S003
S005
S006
 イ  社員コード
S001
S005
 ウ  社員コード
S002
S004
S007
 エ  社員コード
S003
S006


答え ウ


解説
SQL文の3行目の「SELECT * FROM 社員 Y WHERE X.社員コード=Y.上司」は、社員Xは他の社員Yの上司になっているになり、2行目の「WHERE NOT EXISTS」は3行目の社員Xを除くなので、結果は“誰の上司にもなっていない社員”になるので、出力されるのは、S002、S004、S007(ウ)になります。


キーワード
・SQL文

キーワードの解説
  • SQL文
    SQL文で出てくる句について説明します。
    • SELECT
      出力するデータを指定します。
    • DISTINCT
      同じ内容の(重複した)データを除きます。
    • FROM
      操作するデータを指定します。
    • AS
      操作するデータの名前を変えます。
    • WHERE
      操作する条件を指定します。
    • GROUP BY
      同じ内容のデータをまとめます。
    • HAVING
      GROUP BYで抽出条件を指定する。
    • COUNT
      個数を数えます。
    • SUM
      集計(加算)します。
    • AVG
      平均値を計算します。

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

戻る 一覧へ 次へ