"BOOKS"表から書名に"UNIX"を含む行を全て探すために次のSQL文を用いる。
aに指定する文字列として,適切なものはどれか。
ここで,書名は"BOOKS"表の"書名"列に格納されている。
SELECT * FROM BOOKS WHERE 書名 LIKE 'a'
正答2
解説
正解は2です。
LIKE述語は、文字列のパターン一致を調べる条件です。
「%」は0文字以上の任意の文字列、「_」(下線)は任意の1文字を表します。
書名のどこかにUNIXを含む行を探すには、UNIXの前後に任意の文字列が来てもよいパターンにします。
【選択肢別解説】
1:× 「%UNIX」は、UNIXで終わる書名だけに一致します。
UNIXの後ろに文字が続く書名は探せません。
2:○ 「%UNIX%」は、前後に0文字以上の任意の文字列を許すので、UNIXを含む全ての書名に一致します。
先頭や末尾にUNIXがある書名も含まれます。
3:× 「UNIX」は、書名がちょうどUNIXの4文字である行だけに一致します。
4:× 「UNIX%」は、UNIXで始まる書名だけに一致します。
途中や末尾にUNIXがある書名は探せません。
【ポイント】
前方一致は「文字列%」、後方一致は「%文字列」、部分一致は「%文字列%」です。
文字数を固定したいときは「_」を使います。