平成25年度 春期 午前 問29
データベース
LIKEに関する問題
“BOOKS” 表から書名に “UNIX” を含む行を全て探すために次の SQL 文を用いる。a に指定する文字列として,適切なものはどれか。ここで,書名は “BOOKS” 表の “書名” 列に格納されている。
SELECT * FROM BOOKS WHERE 書名 LIKE '[ a ]'
- ア%UNIX
- イ%UNIX%
- ウUNIX
- エUNIX%
答えと解説を見る
✓ これが正解イ%UNIX%
解説
含むという条件なので語の両側に記号を置きます。
あいまいな一致を指定する句では、百分率の記号が0文字以上の任意の文字列を表します。この記号をどこに置くかで意味が変わるのが要点です。設問が求めているのは、書名のどこかにその語が現れる行をすべて集めることです。つまり語の前にも後ろにも何か続いていてよい、と表す必要があります。そこで語の両側にこの記号を添えます。片側だけに置いた場合は、その語が書名の端に来る行しか集まりません。まったく置かなければ、書名がその語と過不足なく同じ行だけが対象になります。判定の軸は一つで、語の前と後ろの両方に文字が続くことを許しているかどうかです。例として入門という言葉が前後に付いた書名を思い浮かべると、両側に置いた形だけが拾えると分かります。
ほかの選択肢はなぜ違うのか
- ア%UNIX:手前の側にだけ任意の文字列を許した形です。書名がその語で終わっている行だけが集まるため、語のうしろに続きがある書名を取りこぼしてしまいます。
- ウUNIX:任意の文字列を表す記号をどこにも添えていないので、書名がその語と過不足なく一致する行だけが対象になります。語を含んでいるだけの書名は集まりません。
- エUNIX%:うしろの側にだけ任意の文字列を許した形です。書名がその語で始まっている行だけが集まるため、語の手前に別の文字がある書名を取りこぼしてしまいます。
出典:平成25年度 春期 基本情報技術者試験 午前 問29(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)