平成25年度 秋期29テクノロジ系

基本情報 平成25年度 秋期 問29:テクノロジ系に関する問題

“BOOKS”表から書名に“UNIX”を含む行を全て探すために次の SQL 文を用いる。 a に指定する文字列として, 適切なものはどれか。ここで, 書名は “BOOKS" 表の “書名”列に格納されている。 SELECT * FROM BOOKS MHERE 書名 LTKE | 』 |

  • a%UNIX
  • b%UNIX%正答
  • cUNIX
  • dUNIX%
正答:B%UNIX%

AI解説(初心者・標準・上級)

理解度に合わせて3レベルの解説を無料で読めます。

初心者向けまずはここから。やさしく要点を解説

答えは b「%UNIX%」 です。

SQLの `LIKE` は「文字パターン検索」で、`%` は「何かしらの文字列(0文字以上)」を表すワイルドカード。

  • `%UNIX%` = 「前にも後にも何が来てもいいから、間にUNIXがあればOK」 → 含む検索
  • `%UNIX` = 「UNIXで終わる」
  • `UNIX%` = 「UNIXで始まる」
  • `UNIX` = 「ピッタリUNIXだけ」

書名に UNIX を含む ものを探すので両側に%が必要。

👉 覚え方:「%=なんでもOKマーク。両側に付けて挟み撃ち=含む検索」。

ほかの選択肢:a「で終わる」/c「完全一致」/d「で始まる」。

標準試験対策の基準レベル

なぜこれが正解か

正解は b(%UNIX%)。LIKE句のワイルドカードは2種類:

  • `%` = 任意の0文字以上の文字列
  • `_` = 任意の1文字

「書名にUNIXを含む」=「UNIXの前後に任意の文字列を許可」なので、両側を`%`で挟む `%UNIX%` が正しい。

各選択肢の解説

  • a `%UNIX`:UNIXで「終わる」書名のみマッチ。「Practical UNIX」はOKだが「UNIX入門」はNG。
  • c `UNIX`:完全一致のみ。「UNIX」というタイトルそのものだけ。
  • d `UNIX%`:UNIXで「始まる」書名のみ。「UNIX入門」はOKだが「Hello UNIX」はNG。

覚え方・ひっかけ注意

「`%`は両側で挟む=含む検索」「`_`は1文字穴埋め」。`%`を含むデータそのものを検索したい場合は `ESCAPE` 句で `'%50\%%' ESCAPE '\'` のように記述。`LIKE`は大文字小文字を区別するかどうかDBMS依存(MySQLの大文字小文字を区別しない照合順序ではUNIX/unixが同義になる)。フルスキャンになりやすく性能注意。

上級誤答論破・背景理論まで深掘り

理論的背景

LIKEは文字列パターンマッチ演算子で、`%`(任意0文字以上)・`_`(任意1文字)の2種類のメタ文字を持つ。SQL標準仕様(ISO/IEC 9075)で定義され、ほとんどのRDBMSが準拠。正規表現(POSIX regex)のサブセットに相当し、より高度なパターン検索が必要なら`SIMILAR TO`(SQL99)または`REGEXP`/`~`(DBMS依存)を使う。

実務での使われ方

前方一致 `'UNIX%'` はB-treeインデックスでインデックスシーク可能で高速。後方一致 `'%UNIX'` および部分一致 `'%UNIX%'` はインデックスを使えずフルテーブルスキャンになり性能劣化する。大規模テーブルでは: ①関数インデックス(`REVERSE(列)`に索引)で後方一致を高速化、②全文検索インデックス(PostgreSQLのtsvector、MySQLのFULLTEXT、Elasticsearchへの外出し)で部分一致を高速化、が定石。さらに日本語のあいまい検索ではN-gramまたは形態素解析ベースの転置インデックスが必要。

試験での位置づけ

FE午前のデータベース分野で必出。①ワイルドカードの種類と意味、②LIKEの構文、③性能影響(インデックス利用可否)、の3点が主要論点。AP/DBスペシャリストでは全文検索インデックス、CASE式、CONCAT・SUBSTRING等の文字列関数まで範囲。

選択肢の発展補足

SQLインジェクション対策の観点で、ユーザー入力をLIKE句に直接結合すると`%`や`_`が攻撃ベクタになり得る。例: `LIKE '%' + 入力 + '%'`に`%admin%`を入れると不必要に広い検索が走る。プリペアドステートメント+エスケープ処理(`LIKE ? ESCAPE '\'`)が安全策。また`COLLATE`句で照合順序を明示すれば、ケース感度・アクセント感度を制御できる。

出典・引用について

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成25年度 秋期29/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

テクノロジ系の他の過去問

1
テクノロジ系
2
テクノロジ系
3
テクノロジ系
4
テクノロジ系
5
テクノロジ系

あなたの弱点を診断して、合格までの最短ルートを

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビなら基本情報の過去問を解きながら学べます。