問題
問74
“気温”表の2011年の7月1日から8月31日までの間で、最高気温が35度以上のレコードを全て抽出したい。
抽出条件として、適切なものはどれか。

- 年 = 2011 and (月 = 7 and 月 = 8) and 最高気温 ≦ 35
- 年 = 2011 and (月 = 7 and 月 = 8) and 最高気温 ≧ 35
- 年 = 2011 and (月 = 7 or 月 = 8) and 最高気温 ≦ 35
- 年 = 2011 and (月 = 7 or 月 = 8) and 最高気温 ≧ 35
[出典:ITパスポート試験 平成28年度秋期 問74]
正解
正解は「エ」です。
解説
正解は「年 = 2011 and (月 = 7 or 月 = 8) and 最高気温 ≧ 35」です。この問題では、2011年の7月1日から8月31日までという期間条件と、最高気温が35度以上という数値条件を同時に満たすレコードを抽出する必要があります。まず、対象年は2011年に限定されるため「年 = 2011」は必須条件です。
次に、期間が7月または8月であるため、月の条件は「7か8のどちらか」を意味するorを使う必要があります。andを使うと、同時に7月かつ8月という存在しない条件になってしまいます。
最後に、最高気温は35度以上とあるため、「≧ 35」を指定します。これは、35度ちょうども含める必要があるためです。日常の例で言えば、「7月か8月のどちらかに行われた、35人以上が参加したイベントを探す」と考えると理解しやすく、すべての条件を正しく組み合わせているのがこの選択肢となります。
ア(月 = 7 and 月 = 8):
同一レコードで月が7と8を同時に満たすことは不可能です。また、最高気温が35度以下となっており条件にも合いません。
イ(月 = 7 and 月 = 8):
最高気温の条件は正しいですが、月をandで結んでいるため、抽出条件として成立しません。
ウ(月 = 7 or 月 = 8):
月の指定は正しいですが、最高気温が35度以下となっており、問題の条件と逆になっています。
難易度
SQLや検索条件の基礎的な論理演算(and・or)を理解していれば比較的解きやすい問題です。ただし、条件の組み合わせを正確に読めない初心者は混乱しやすく、特にandとorの違いで間違えやすい点が注意点です。
用語補足
抽出条件:
データベースから特定のデータだけを取り出すための条件です。例として「点数が80点以上」のような指定があります。
AND演算:
複数の条件をすべて満たす場合に成立する論理演算です。「国語も数学も合格」のような関係です。
OR演算:
複数の条件のうち、どれか一つでも満たせば成立する論理演算です。「土曜または日曜」のような関係です。
比較演算子(≧、≦):
数値の大小関係を比較する記号です。≧は「以上」、≦は「以下」を意味します。
対策
期間指定の問題では、月や日付が「どちらか」を意味するのか、「すべて」を意味するのかを意識してandとorを使い分けることが重要です。また、「以上」「以下」という日本語表現と、≧・≦の対応関係を確実に覚えておくとミスを防げます。条件文を日常会話に置き換えて考える練習をすると理解が深まります。

