第18回J検準2級 情報リテラシー応用 問題6


問題6 次のデータ処理に関する記述を読み,設問に答えよ。
 
1.データ検索のためのSQL文の書式は,次のとおりである。
 
SELECT 列名,列名,・・・
    FROM 表名,表名,・・・
    WHERE 条件式
    ORDER BY 列名 ASC または DESC
    GROUP BY 列名 HAVING 条件式
 
 ここで,列名とは検索したい列の名であり,カンマで区切ることにより複数の列名の指定ができる。列名を列挙する代わりに*を書くことで,すべての列の指定もできる。条件式は,特定の条件にあったデータを抽出するために指定する。条件の指定には,関係演算子(=,<,<=,>,>=)や論理演算子(AND,OR,NOT)および次に示す述語を利用できる。また論理演算子の優先順位は,NOT,AND,ORの順である。
 ORDER BYを指定すると,列の内容で昇順(ASC)または降順(DESC)に並べ替えを行う。なお,昇順に並べ替えを行う場合は,ASCを省略できる。
 GROUP BYを指定すると,指定した列の内容が一致するレコードを1つのレコードにまとめること(グループ化)ができる。なお,グループ化された後の値はグループごとに1つでなければならない。またグループ化するときの条件指定にはHAVING句を使用する。
 SUM(合計),AVG(平均),MAX(最大),MIN(最小),COUNT(件数カウント)などの集計関数を用いることができる。関数は,関数名(列名)と指定する。ただし,WHEREに続く条件式の中で集計関数を使うことはできない。
 2つの表を結合するときは,FROM句に,利用するすべての表名を記述したうえで,WHERE句に結合するための条件を関係演算子を用いて記述する。
 また,異なる表において同一の列名が使用されているときは,列名を一意にするため,次のように表名で修飾して記述する。
 
 修飾の方法
 
 表名.列名
 
 
 ある特定のパターンを検索する場合にはLIKE述語を使用する。この場合,WHERE句は次のように記述する。
 
 WHERE 条件式 LIKE 検索パターン
 
 
検索のパターンを以下に示す。
XX_   先頭からXXで始まる3文字のデータを検索する
_XX   最後がXXで終わる3文字のデータを検索する
_XX_  真ん中がXXという4文字のデータを検索する
XX%   先頭からXXで始まるデータを検索する
%XX   最後がXXで終わるデータを検索する
%XX%  任意の位置にXXを含むデータを検索する
なお,_は任意の1文字を示し,%は任意の0文字以上の文字列を示す。
 
 
2.表1は,小売店に餅を卸している卸問屋「滋栄餅」における受注表である。また表2は商品表,表3は顧客表である。各表の内容と受注状況は以下のとおりである。
 
表1 受注表
受注No 顧客コード 商品コード 数量 配達日
1 010001 KM2 10 2002/12/25
2 010001 KM3 20 2002/12/30
3 010002 MM3 5 2002/12/20
4 010003 KM3 10 2002/12/26
5 010003 MM2 15 2002/12/29
6 010003 MM3 15 2002/12/29
7 020001 KM1 100 2002/12/15
8 020002 KM3 20 2002/12/28
9 020002 MM3 30 2002/12/29
10 020003 KM3 50 2002/12/30
 
表2 商品表
商品コード 商品名 サイズ 単価
KM1 角餅 1号 500
KM2 角餅 2号 1000
KM3 角餅 3号 2000
MM1 丸餅 1号 400
MM2 丸餅 2号 800
MM3 丸餅 3号 1200
 
表3 顧客表
顧客コード 顧客名 地区名 住所
010001 安達商店 千代田区 八段北8-5-1
010002 石田米屋 千代田区 市ヶ山1-3-1
010003 割烹北村 千代田区 虎込5-3-1
020001 道場商会 港区 青坂3-2-5
020002 八目食堂 港区 山青1-1-1
020003 鉄人飯店 港区 乃木山6-3-1
 
 
<設問> 次のSQL文によって抽出されるデータを解答群から選べ。
 
(1) SELECT 地区名,住所,顧客名
 FROM 顧客表
 WHERE 地区名='港区' AND 住所 LIKE '%山%'
 
(1)の解答群
ア.
港区 青坂3-2-5 道場商会
港区 山青1-1-1 八目食堂
港区 乃木山6-3-1 鉄人飯店
 
イ.
港区 山青1-1-1 八目食堂
港区 乃木山6-3-1 鉄人飯店
 
ウ.
港区 乃木山6-3-1 鉄人飯店
 
(2) SELECT 顧客表.顧客名,受注表.配達日
 FROM 顧客表,受注表
 WHERE 顧客表.顧客コード=受注表.顧客コード
 AND 顧客表.顧客名 LIKE '%商%'
 
(2)の解答群
ア.
安達商店 2002/12/25
安達商店 2002/12/30
道場商会 2002/12/15
 
イ.
安達商店 2002/12/25
道場商会 2002/12/15
 
ウ.
道場商会 2002/12/15
 
 
(3) SELECT 顧客表.地区名,COUNT(*)
 FROM 顧客表,受注表
 WHERE 顧客表.顧客コード=受注表.顧客コード
 GROUPBY 顧客表.地区名
 
(3)の解答群
ア.
千代田区 3
港区 3
 
イ.
千代田区 4
港区 6
 
ウ.
千代田区 6
港区 4
 
 
(4) SELECT 受注表.配達日,顧客表.顧客名,商品表.商品名,受注表.数量
 FROM 顧客表,受注表,商品表
 WHERE 顧客表.顧客コード=受注表.顧客コード
 AND 受注表.商品コード=商品表.商品コード
 ORDER BY 受注表.配達日
 
(5) SELECT 受注表.配達日,SUM(受注表.数量*商品表.単価)
 FROM 受注表,商品表
 WHERE 受注表.商品コード=商品表.商品コード
 GROUP BY 受注表.配達日
  HAVING SUM(受注表.数量*商品表.単価)>10000
 
(4),(5)の解答群
ア.
2002/12/15 50000
2002/12/26 20000
2002/12/28 40000
2002/12/29 66000
2002/12/30 140000
 
イ.
2002/12/15 50000
2002/12/25 10000
2002/12/26 20000
2002/12/28 40000
2002/12/29 66000
2002/12/30 140000
 
ウ.
2002/12/15 道場商会 角餅 100
2002/12/20 石田米屋 丸餅 5
2002/12/25 安達商店 角餅 10
2002/12/26 割烹北村 角餅 10
2002/12/28 八目食堂 角餅 20
2002/12/29 八目食堂 丸餅 30
2002/12/29 割烹北村 丸餅 15
2002/12/29 割烹北村 丸餅 15
2002/12/30 鉄人飯店 角餅 50
2002/12/30 安達商店 角餅 20
 
エ.
2002/12/30 安達商店 角餅 20
2002/12/30 鉄人飯店 角餅 50
2002/12/29 割烹北村 丸餅 15
2002/12/29 割烹北村 丸餅 15
2002/12/29 八目食堂 丸餅 30
2002/12/28 八目食堂 角餅 20
2002/12/26 割烹北村 角餅 10
2002/12/25 安達商店 角餅 10
2002/12/20 石田米屋 丸餅 5
2002/12/15 道場商会 角餅 100
 
 
 

 
メニューに戻る
 

Certain right called neighbouring on copyright kimura-kouichi