“商品”表に対して,次のSQL文によって得られる結果はどれか。
SELECT 商品番号 FROM 商品
WHERE 商品名 LIKE '%めん' AND 単価<330
(商品表:商品番号|商品名|単価/100|ラーメン|305/130|きしめん|285/205|チャーシューメン|700/267|おかめうどん|300/307|そうめん|350/390|カレーライス|400/401|チャーハン|320/420|きつねうどん|298)
商品番号/100/130 商品番号/100/130/267/420 商品番号/130 商品番号/130/307 購入状況を確認しています… 正答 3
解説 正解は3です。
SQL文のLIKE述語とAND条件の結果を求める問題です。
LIKE '%めん'は、商品名が「めん」で終わる行を選びます。
%は0文字以上の任意の文字列を表します。
さらに、単価が330未満という条件をANDで同時に満たす行だけが選ばれます。
【計算】
商品名がひらがなの「めん」で終わるのは、きしめん(130)とそうめん(307)です。
ラーメン(100)とチャーシューメン(205)は、カタカナの「メン」なので条件に合いません。
きしめんの単価は285で、330未満を満たします。
そうめんの単価は350で、330未満を満たしません。
結果は商品番号130の1行だけです。
【選択肢別解説】
1:× 商品番号100のラーメンは、末尾がカタカナの「メン」で、'%めん'に一致しません。
2:× 267のおかめうどんと420のきつねうどんは、単価は330未満ですが、末尾が「めん」ではありません。
100のラーメンも一致しないので誤りです。
3:○ 二つの条件をともに満たすのは、商品番号130のきしめんだけです。
4:× 307のそうめんは末尾が「めん」ですが、単価が350で330未満の条件を満たしません。
【ポイント】
LIKE述語では、%が0文字以上の任意の文字列、_(下線)が任意の1文字を表します。
文字列の比較では、ひらがなとカタカナは別の文字として扱われる点に注意します。