ITパスポート 令和6年度93

問題

テクノロジ系

問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文字を表します。「%葉」は文字列全体が一致するため,末尾条件になっている点に注意します。