問題
テクノロジ系
問93 関係データベースで管理している"従業員"表から,氏名が'%葉_'に該当する従業員を抽出した。抽出された従業員は何名か。ここで,"_"は任意の1文字を表し,“%”は0文字以上の任意の文字列を表すものとする。
選択肢
- ア1
- イ2
- ウ3
- エ4
解説
正解:イ
概要
この問題は,SQLの検索条件で用いるワイルドカード(%と_)の意味を理解し,氏名が指定パターンに一致する人数を求める問題です。
正解の理由
“%”は0文字以上の任意の文字列,“”は任意の1文字を表します。したがって「%葉」は「末尾2文字が『葉+任意の1文字』」に一致する氏名を抽出する条件になり,該当者は2名なので正解はイです。
各選択肢の解説
ア(×): 1名ではありません。「千葉翔」と「鈴木葉子」の2名が,末尾が「葉+1文字」に一致するため誤りです。
イ(〇): 2名が正しいです。「千葉翔(…葉翔)」と「鈴木葉子(…葉子)」が「%葉_」に一致するため正しいです。
ウ(×): 3名ではありません。「佐藤乙葉」や「秋葉彩葉」は末尾が「葉」で終わっており,「葉」の後に1文字が必要な条件を満たさないため誤りです。
エ(×): 4名ではありません。「葉山花子」「稲葉小春」などは末尾2文字が「葉+1文字」ではないため誤りです。
ポイント
SQLのLIKE検索では,“%”は任意長,“”は1文字を表します。「%葉」は文字列全体が一致するため,末尾条件になっている点に注意します。