令和 4 年度 第 1 次試験問題 経営情報システム 第五問 解答と解説

解答

 

5.

 

解説

SQL文の問題です。

SQLは、別途解説するIT系のブログを書きますので、そちらを確認してください。ここでは、SQLを基本的なところから解説するのはしません。

しかし、さすがに中小企業診断士試験で、とんでもなく難しいSQLの問題が出ないでしょう。全くSQLに触れていない人でも、少しの知識だけで点数が取れる部分ではあると思います。

まずはざっくりしたイメージを持ちましょう。SQLはデータテーブルを扱うための、言語です。Excelで扱うようなデータテーブルを想像してください。複数のデータテーブルを関連させたデータベースをRDBなんていう風に言います。たとえば従業員番号一覧テーブルから、従業員名簿が参照されるとかですね。

データの持ち方をざっくりイメージが持てたところで、今日の問題になっているSELECTを考えましょう。SELECTはそのようなデータテーブルから、ある条件をもってデータを抽出するための命令後です。SELECT ~ で、たとえば~のデータを持ってこいってことです。SELECT 従業員番号 で、従業員番号データを持ってこいって感じになります。あれ?問題文を見ると、「SELECT *」になっていますね。 *は、想像つく人もいるかもしれませんが、「なんでも」「全部」という意味合いになります。つまりは、データテーブルの要素を全部持ってこい!ってことになります。

そして、その下に「FROM ~」と続いています。~には、データテーブル名が入ります。SQLは複数のデータテーブルが保管されたDBから、テーブル名を指定しテーブルを選択して、データを抽出することができます。つまり、今回では、「FROM アルバイト担当者」で、"アルバイト担当者"というテーブルから、データを抽出しなさいということになります。

ここまでで、SELECT ~ で、どのデータを、FROM ~ で、どのテーブルから抽出するのかということが指定されました。最後にWHEREとあります。ここには、抽出する際の条件が入ります。例えば、"10000以上の従業員番号"とか、様々な条件を付けることが可能です。

今回の問題は、このWHERE句の書き方が問題となっています。

 

  SELECT * FROM アルバイト担当者 WHERE ;

 

WHERE句の代表的な書き方をさらっと紹介しましょう。「従業員番号が~だったら」という条件を例にします。

従業員番号 = 10000    ➡ 従業員番号が10000のデータを抽出

従業員番号 != 10000    ➡ 従業員番号が10000以外のデータを抽出

従業員番号 > 10000  ➡ 従業員番号が10000より大きいデータを抽出

従業員番号 BETWEEN 1 AND 10000   ➡ 従業員番号が1から10000の間のデータを抽出

従業員番号 LIKE 'A00%'   ➡ 従業員番号が'A00' から始まるデータを抽出

 

さて、問題にもなっているLIKEは、文字列データの条件を定義するときに用いられるもので、XXX% とすると XXX + 任意の文字数の文字列、XXX_ で、XXX + 任意の1文字の検索条件で、抽出できます。

 

と、ここまでで問題文に戻りましょう。

5の「電話番号 LIKE '03-3%'」で、電話番号が、'03-3'から始まる電話番号ということになります。

これが正解になりますね。