第5問(データベース)
目標:1問ミス(ー3点)~2問ミス(ー6点)
① 外部キー
外部キーとは、別表の特定の列しか利用できないようにする制約事項の一つ。
ポイントとして、参照される設定元は必ず主キーである必要があります。
これを抑えて、今回の問題を解いてみましょう。
今回は追加注文表の外部キーについて聞いています。まずはそれぞれの表の主キーを探しましょう。
この時点で、外部キーになるのは「顧客コード」か「配達番号」となりました。
追加注文表に存在するのは「顧客コード」であるので、顧客表の顧客コードと外部キーで関係されているとわかります。
② 更新
SQLで更新であれば、UPDATE ~ SET ~ でした。
UPDATE 表名
SET 列名 = 値
WHERE 更新する行を特定する条件;
③ グループ化
まず、問題文に「~ごと」とあればGROUP BYを疑いましょう。
GROUP BYはSELECTで指定したフィールドの集計関数以外が一致します。
GROUP BYの条件は「HAVING」を利用します。
④ 集計
今回重要となる作成条件はこれです。
さて、上のようにするにはどうすればいいでしょうか。
ヒントは( )があるところです。わざわざ( )が必要な計算式が入るということです。
今回、定期配達代金を決めるトリガーは「本数」です。しかし、1本目は1600のままなので、-1してあげる必要があり、答えは「 本数 – 1 」となります。
⑤ ワイルドカード
この時点でLIKEのイ・ウのどちらかになりました。
ここでワイルドカードを理解しなければなりません。
例えば「100_」と指定した場合は「1001」や「1009」はOKですが、「10010」など1文字以上のあいまい検索はできません。
一方「100%」と指定した場合は「100」もいいですし、「1000」でも、「10001000」でもOKとなります。
今回「_」を利用しているなら、出力結果と矛盾が生じるので「%」を利用しているイが正解となります。