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

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


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


対戦
出場チーム1
出場チーム2
審判氏名
X
Y
高橋拓也
X
Z
鈴木翔太
Y
Z
佐藤健太


〔SQL文〕
 SELECT A.チーム名 AS 出場チーム1,B.チーム名 AS 出場チーム2,C.氏名 AS 審判氏名
    FROM サッカーチーム AS A,サッカーチーム AS B,審判 AS C
    WHERE A.チーム名 < B.チーム名 AND [  a  ]


ア (A.チーム名 <> C.所属チーム名 OR B.チーム名 <> C.所属チーム名)
イ C.所属チーム名 NOT IN (A.チーム名,B.チーム名)
ウ EXISTS
    (SELECT * FROM 審判 AS D WHERE A.チーム名 <> D.所属チーム名 AND B.チーム名 <> D.所属チーム名)
エ NOT EXISTS
    (SELECT * FROM 審判 AS D WHERE A.チーム名=D.所属チーム名 OR B.チーム名 = D.所属チーム名)





【正解】エ

H27秋AP午前
問29    "倉庫別商品在庫集計”表から在庫数の合計を求めたい。倉庫番号'C003'の倉庫で在庫数が100 以上の商品に対して,全ての倉庫における在庫数の合計を求めるSQL文のaに入る適切な字句はどれか。ここで,該当する商品は複数存在するとともに在庫数が100未満の商品も存在するものとする。また,実線の下線は主キーを表す。

倉庫別商品在庫集計(倉庫番号,商品コード,在庫数)

〔SQL文〕
SELECT 商品コード, SUM(在庫数) AS 在庫合計 FROM 倉庫別商品在庫集計
      WHERE [  a  ]
      GROUP BY 商品コード

ア 商品コード = (SELECT 商品コード FROM 倉庫別商品在庫集計
               WHERE倉庫番号 = 'C003' AND 在庫数 >= 100)
イ 商品コード = ALL(SELECT 商品コード FROM 倉庫別商品在庫集計
               WHERE倉庫番号 = 'C003' AND 在庫数 >= 100)
ウ 商品コード IN(SELECT 商品コード FROM 倉庫別商品在庫集計
               WHERE 倉庫番号 = 'C003' AND 在庫数 >= 100)
エ EXISTS (SELECT * FROM 倉庫別商品在庫集計
               WHERE 倉庫番号 = 'C003' AND 在庫数 >= 100)





【正解】ウ

H27春AP午前
間26 "電話番号"列にNULLを含む"取引先"表に対して,SQL文を実行した結果の行数は幾つか。
20170906_3-1
〔SQL文〕
SELECT * FROM 取引先 WHERE 電話番号 NOT LIKE '010%'

ア 1   イ 2     ウ 3   エ 4





NOT LIKE '010%'はあいまい検索で「010」で始まるもの以外ということを表します。
NULL(ヌルと呼ぶ人が多い)は「値が無い」という意味です。LIKEを使った場合、NULLを抽出することはできません。よって、2行目、4行目、5行目の3つが正解です。
【正解】ウです。

(H25春AP午前問29と同じ)
問27 埋込みSQLにおいて,問合せによって得られた導出表を1行ずつ親プログラムに引き渡す操作がある。この操作と関係の深い字句はどれか。

ア CURSOR
イ ORDER BY   
ウ UNION
エ UNIQUE





【正解】ア

H26秋AP午前
問25 表に対するSQLのGRANT文の説明として,適切なものはどれか。

ア パスワードを設定してデータベースへの接続を制限する。
イ ビューを作成して,データベースへのアクセス処理を隠蔽し,表を直接アクセスできないようにする。
ウ 表のデータを暗号化して,第三者がアクセスしてもデータの内容が分からないようにする。
エ 表の利用者に対し,表への問合せ,更新,追加,削除などの操作を許可する。





【正解】エ

H26春AP午前
問28 "東京在庫" 表と "大阪在庫" 表に対して,SQL文を実行して得られる結果はどれか。ここで,実線の下線は主キーを表す。
20170906_3-2





【正解】エ

H25秋AP午前
(H21春AP午前問31と同じ)
問27 クライアントサーバシステムにおけるストアドプロシージャに関する記述のうち,誤っているものはどれか。
ア 機密性の高いデータに対する処理を特定のプロシージャ呼出しに限定することによって,セキュリティを向上させることができる。
イ システム全体に共通な処理をプロシージャとして格納しておくことによって,処理の標準化を行うことができる。
ウ データベースへのアクセスを細かい単位でプロシージャ化することによって,処理性能(スループット)を向上させることができる。
エ 複数のSQL文から成る手続を1回の呼出しで実行できるので,クライアントとサーバの間の通信回数を減らすことができる。





【正解】ウ

問31 地域別に分かれている同じ構造の三つの商品表,"東京商品","名古屋商品","大阪商品"がある。次のSQL文と同等の結果が得られる関係代数式はどれか。ここで,三つの商品表の主キーは"商品番号"である。

SELECT * FROM 大阪商品
   WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 東京商品)
UNION
SELECT * FROM 名古屋商品
   WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 東京商品)

ア (大阪商品 ∩ 名古屋商品)-東京商品
イ (大阪商品 ∪ 名古屋商品)-東京商品
ウ 東京商品-(大阪商品 ∩ 名古屋商品)
エ 東京商品-(大阪商品 ∪ 名古屋商品)





【正解】イ

H25春AP午前
問27 クライアントサーバシステムにおいて,クライアント側からストアドプロシージャを利用したときの利点として,適切なものはどれか。

ア クライアントとサーバの間の通信量を削減できる。
イ サーバ内でのデータベースファイルへのアクセス量を削減できる。
ウ サーバのメモリ使用量を削減できる。
エ データの格納領域を削減できる。





【正解】ア

問30 A表は外部キーによってB表から参照されている。ここで,A表の行を削除するとき,それを参照しているB表の行を同時に全て削除することを指定するSQLの参照動作はどれか。

ア CASCADE
イ CONSTRAINT
ウ NO ACTION
エ REFERENCES





【正解】ア

H24春AP午前
問26 販売価格が決められていない“商品"表に,次のSQL文を実行して販売価格を設定する。このとき,販売ランクがbの商品の販売価格の平均値は幾らか。

 UPDATE 商品 SET 販売価格 =
        CASE
            WHEN 販売ランク = 'a' THEN 単価 * 0.9
            WHEN 販売ランク = 'b' THEN 単価 - 500
            WHEN 販売ランク = 'c' THEN 単価 * 0.7
            ELSE  単価
 END

H24春AP午前問26

 ア 1,675     イ 2,100     ウ 2,250     エ 2,500






【正解】エ

H23秋AP
問30 更新可能なビューを作成するSQL文はどれか。ここで, SQL文中に現れる表は全て更新可能とする。
ア CREATE VIEW 高額商品(商品番号,商品名,商品単価)
   AS SELECT 商品番号,商品名,商品単価 FROM 商品 WHERE 商品単価 > 1000
イ CREATE VIEW 受注商品(商品番号)
   AS SELECT DISTINCT 商品番号 FROM 受注
ウ CREATE VIEW 商品受注(商品番号,受注数量)
   AS SELECT 商品番号,SUM(受注数量) FROM 受注 GROUP BY 商品番号
エ CREATE VIEW 商品平均受注数量(平均受注数量)
   AS SELECT AVG(受注数量) FROM 受注





【正解】ア

H23特別AP午前
問30   "社員"表ど人事異動"表から社員ごとの勤務成績の平均を求める適切なSQL文はどれか。ここで,求める項目は,社員コード,社員名,勤務成績(平均)の3項目とする。
H23特別AP午前問30表

ア SELECT 社員.社員コード,社員名,AVG(勤務成績) AS "勤務成績(平均)"
     FROM 社員,人事異動
     WHERE 社員.社員コード = 人事異動.社員コード
     GROUP BY 勤務成績
イ SELECT 社員.社員コード,社員名,AVG(勤務成績) AS  "勤務成績(平均)" 
     FROM 社員,人事異動
     WHERE 社員.社員コード = 人事異動.社員コード
     GROUP BY 社員.社員コード,社員.社員名
ウ SELECT 社員.社員コード,社員名,AVG(勤務成績)/COUNT(勤務成績) 
                            AS  "勤務成績(平均)"
     FROM 社員,人事異動
     WHERE 社員.社員コード = 人事異動.社員コード
     GROUP BY 社員.社員コード,社員.社員名
エ SELECT 社員.社員コード,社員名,MAX(勤務成績)/COUNT(*)
                            AS "勤務成績(平均)"
     FROM 社員,人事異動
     WHERE 社員.社員コード = 人事異動.社員コード
     GROUP BY 社員.社員コード,社員.社員名





【正解】イ




■H22春AP午前
問33 表Aから実行結果Bを得るためのSQL文はどれか。
H22春AP問33
ア SELECT 部署コード,社員コード,名前 FROM A
       GROUP BY 社員コード
イ SELECT 部署コード,社員コード,名前 FROM A
       GROUP BY 部署コード
ウ SELECT 部署コード,社員コード,名前 FROM A
       ORDER BY 社員コード,部署コード
エ SELECT 部署コード,社員コード,名前 FROM A
       ORDER BY 部署コード,社員コード





【正解】エ