見出し画像

狙った分野の午後問題をやっつけたいよPart3・・・小学生を対象とした、ある子供会の名簿を管理する関係データベース『設問4』

#基本情報技術者試験 #平成30年 #春期 #午後 #データベース #SQL

子供会のラスト、設問4いきます。

問題文に手順あり。
いつ実行するのかが書いてあったので、一応メモ。

3月31日にやることは、

新しく子供会に入会する児童と、その保護者の情報を登録するんだね。
まだ3月だから、新一年生ではない。ということで、学年は0にしておくのかな。

新年度になって4月1日にやることは、

(3)で活動表を空っぽにする。新年度の活動データは、空っぽの状態からスタートするわけね。

(4)では、児童表の全データの学年に1を足すらしい。
これで1年生は2年生になり、2年生は3年生になり・・・と学年が一つずつあがるね。
ところで6年生は?・・・7年生になってしまう。
あと、3月31日に(2)の処理で、新入会児童の学年を0年生にしたけど・・・それは1年生になるのか。なるほど~。

(5)では、学年が7のデータを削除する。
ほうほう、これで元6年生だった人のデータがなくなるね。これが退会ってことかな。

(6)は、在籍する児童がいなくなってしまった保護者のデータを消したいみたい。それでDELETE文があって、WHEREの条件のところが空欄になっている。ここにあてはまるやつを解答群から探すんですね。

解答群を見てみる。

そんなに長くないし、順番に調べていこうかな。

は、保護者表の保護者番号がNULLのデータを消すってことになるね。
それは無理。保護者表の保護者番号は主キーだから、絶対にNULLになることはない。

は、副問い合わせだから、先に( )の中が処理される。
そこでは、学年が7のやつの保護者番号をピックアップすることになってる。確か(5)で、学年が7のデータは消したよね。
仮に残ってたとしても、弟や妹が他の学年で在籍している可能性もあるし、これはだめだ。

も、副問い合わせだから、( )の中を先に調べる。
児童表から保護者番号をピックアップしている。
今、児童表には、新1年生~新6年生のデータが入っているので、在籍している小学生の保護者の番号がずらずら並ぶことになる。これは良さそう。
ということは、

で、何が抽出されるかというと、在籍している児童の保護者だよね。
それって、DELETEしちゃ絶対だめなやつ。

じゃあが正解だ。
一応みてみると、ウとほぼ同じで、違うのは・・・

INNOT INのところ。
さっきのがNOT INになると、在籍している児童の保護者ではないやつってことになる。DELETEしたかったやつですね。

いいなと思ったら応援しよう!