- ■出る順7位のSQL1:結合とSELECTの記述
- ■SQL1:内部結合とSELECTの記述のポイント
- ① 左表と右表を結合した場合、左外部結合では、どのような行や値になるか?
- ② 左表と右表を結合した場合、内部結合では、どのような行や値になるか?
- ③ 左表と右表を両者の区分の列をキーとして内部結合し、右表の前列を表示するSQLは?
- ④ WHERE・ON・USING を指定する結合条件に、空所がある設問の解き方のポイントは?
- ⑤ AS、DICINTCTについてSQLの意味、用法について、説明せよ。
- ⑥ SQLの記述ミスを直せ。
- ⑦ %(パーセント)と_(アンダーバー)のワイルドカードの意味は?
- ⑧ SQL文でGROUP BY を使って表す日本語の表現を3つ挙げよ。
- ⑨ GROUP BYに空所がある場合の解き方のポイントは?
- ⑩ UNION と UNION ALL の違いを説明せよ。
- ⑪ ビューに格納されるものは何か。
- ⑫ 更新不可能なビューの例を2つあげよ。
- ⑬ 更新不可能なビューが更新不可能である理由を説明せよ。
- ■参考書の紹介
- ■ソフトウェア開発の名著の紹介
- ■関連ブログ
■出る順7位のSQL1:結合とSELECTの記述
『情報処理教科書 出るとこだけ!応用情報技術者[午後]』によると、
選択分野:データベース
の中では、
内部結合とSQLの記述は、記述式ですが、他の記述から書き写しで答えることができるため、
問題の読解力があれば得点しやすい分野のようです。
■SQL1:内部結合とSELECTの記述のポイント
の出る順7位「SQL1」
の内容を参考に、覚えるべきポイントを以下に記載します。
① 左表と右表を結合した場合、左外部結合では、どのような行や値になるか?
左表のすべての行を表示する。左表に対応する値が、右表にない場合は、NULLを表示する。
② 左表と右表を結合した場合、内部結合では、どのような行や値になるか?
両方の表に存在する行だけ表示する。
③ 左表と右表を両者の区分の列をキーとして内部結合し、右表の前列を表示するSQLは?
▼WHERE 句で指定する場合
SELECT 左表.*, 右表.*
FROM 左表, 右表
WHERE 左表.区分 = 右表.区分
▼ON 句で指定
SELECT 左表.*, 右表.*
FROM 左表 INNER JOIN 右表
ON 左表.区分 = 右表.区分
▼USING 句で指定
SELECT 左表.*, 右表.*
FROM 左表 INNER JOIN 右表
USING (区分)
なお、USINGは、両方の表にある同じ列名を結合する場合に利用可能である。
④ WHERE・ON・USING を指定する結合条件に、空所がある設問の解き方のポイントは?
WHERE・ON・USING を指定する結合条件に、空所がある設問の場合、
E-R図をもとに、結合する両方のエンティティ(表)で共通する属性(列)を結合条件とする。
⑤ AS、DICINTCTについてSQLの意味、用法について、説明せよ。
AS: 表や列名を別名に変更する。ASは省略可能だが、省略されたことに気づきにくい。
DISTINCT:同じ値の重複を省いた値を、表示、集計する。
⑥ SQLの記述ミスを直せ。
× 社員ID ≠ 123 ⇒ 〇 社員ID <> 123
× 単価 ≧ 100 ⇒ 〇 単価 >= 100
× WHERE 試験区分 = AP ⇒ 〇 WHERE 試験区分 = 'AP'
× SELECT 数量 × 単価 FROM ⇒ 〇 SELECT 数量 * 単価 FROM
× WHERE 試験区分 = NULL ⇒ 〇 WHERE 試験区分 IS NULL
× WHERE 試験区分 <> NULL ⇒ 〇 WHERE 試験区分 IS NOT NULL
⑦ %(パーセント)と_(アンダーバー)のワイルドカードの意味は?
%(パーセント):0文字以上の任意の文字列。0文字、つまり該当する文字がなくても問題ない。
_(アンダーバー):任意の1文字。
⑧ SQL文でGROUP BY を使って表す日本語の表現を3つ挙げよ。
GROUP BY は、各、ごと、別といった表現で利用される。
各商品の数量、商品ごとの数量、商品別の数量を出す場合に、
SELECT COUNT(商品番号) AS 数量 FROM 発注
GROUP BY 商品番号
といった表現が利用される。
⑨ GROUP BYに空所がある場合の解き方のポイントは?
GROUP BY に空所がある場合は、
- GROUP BY にある空所には、SELECT にある列を入れる。
- SELECT にある列のうち、集合関数の列には GROUP BYは記述不要である。
といった点で、空所は導き出される。
SELECT 部署ID, 部署名, COUNT(社員番号)
FROM 社員
GROUP BY 「 (a) 」という問題であれば、
「 (a) 」には「 部署ID, 部署名 」が入る。
⑩ UNION と UNION ALL の違いを説明せよ。
UNIONは、列が同じである二つ表を統合、合体する。同じ値がある場合は、重複を省く。
UNION ALLは、列が同じである二つ表を統合、合体する。同じ値がある場合も重複を省かず表示する。
⑪ ビューに格納されるものは何か。
SELECT の結果の値が格納される。
CREATE VIEW 家族閲覧ビュー AS
SELECT AVG(家族年齢) AS 結果 FROM 家族
というSQLであれば、
SELECT 文の結果が家族閲覧ビュー に保存されるので、
SELECT * FROM 家族閲覧ビュー を実行すると、
SELECT AVG(家族年齢) AS 結果 FROM 家族の結果が表示される。
⑫ 更新不可能なビューの例を2つあげよ。
・集合関数を利用して値が集計されたビュー
・GROUP BY を利用して、「〇〇ごと」に表示されたビュー
⑬ 更新不可能なビューが更新不可能である理由を説明せよ。
集合関数を使った集計値や、GROUP BYによりグループ化された値は、
元の表の行を更新することはできるが、集計値、グループ化された値そのものはテーブルに格納されていないので更新できない。
■参考書の紹介
午後問題を出る順に効果的な試験対策ができる良書かなと思っています。
基本情報技術者試験も、同じシリーズの参考書で勉強して、苦手な午後問題を克服して合格しました。
- 作者:橋本 祐史
- 発売日: 2019/01/16
-
「『応用情報の午後』は試験範囲が幅広く、どの分野・テーマを学習したらよいかわからない」と困っている方も多くいることと思います。応用情報の午後は、11問中5問に解答する形式ですが、多くの選択肢があるようで、受験生を惑わせることにもなります。
そこで、本書では、徹底した分析と対策授業の経験などをもとに「出る順」で「出るところだけ」を厳選して掲載しました。本書で学ぶことにより、効率よく午後試験に合格する力が身に付けることができます。
-
【本書の特徴】
・「出る順」に「出るところだけ」掲載。効率よく学習できる
・午後問題に合格するために「17のテーマ」に厳選して収録
・1つのテーマは、前提知識+解き方+過去問の順で丁寧に解説
・ベテランの現役講師による鋭い分析とわかりやすい説明で合格力養成【対象読者】
・応用情報技術者の午前試験の学習が一通り終わった人
・午後試験の学習の仕方が分からない人
・短期間で午後試験の対策をしたい人
■ソフトウェア開発の名著の紹介
上記の本については、以下のブログでも紹介していますのでご参考になれば幸いです。
■関連ブログ
以上です。