MySQLのWHERE句でBETWEENを使う方法を徹底解説!SQL初心者でもわかる範囲検索の基本
生徒
「MySQLのWHERE句でBETWEENって見たことがあるんですが、どういう意味なんですか?」
先生
「BETWEENは、データベースの中から“ある範囲のデータ”を探すときに使うSQLの書き方です。例えば、20歳から30歳までの人を探す、というようなときに便利です。」
生徒
「数字の間を探すんですね。パソコンが苦手でも理解できますか?」
先生
「もちろんです。紙の名簿で“この年齢からこの年齢まで”と指でなぞして探すイメージで考えれば大丈夫ですよ。」
1. MySQLとWHERE句、BETWEENとは何か?
MySQLは、データベース管理システムのひとつです。データベースとは、たくさんの情報を整理して保存する仕組みのことです。例えば、会員名簿や商品一覧、成績表などをイメージするとわかりやすいでしょう。
SQLは、そのデータベースに命令を出すための言葉です。WHERE句とは、データを取り出すときに「どんな条件で探すか」を指定する部分です。
BETWEENは、そのWHERE句の中で使うキーワードで、「ある値からある値まで」という範囲検索を行うための書き方です。MySQLのWHERE句でBETWEENを使うことで、数字や日付の範囲を簡単に検索できます。
2. BETWEENの基本構文と書き方
MySQLでBETWEENを使う基本の書き方は次の通りです。
SELECT 列名
FROM テーブル名
WHERE 列名 BETWEEN 値1 AND 値2;
BETWEENは「値1以上、値2以下」という意味になります。ここがとても大切なポイントです。値1も値2も含まれます。これを「以上」「以下」と呼びます。
例えば、20歳以上30歳以下の人を検索したい場合、20も30も結果に含まれます。
3. 数値の範囲検索をしてみよう
次のようなusersテーブルがあるとします。
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 18 | taro@example.com
2 | 佐藤花子 | 22 | hanako@example.com
3 | 鈴木一郎 | 27 | ichiro@example.com
4 | 田中次郎 | 31 | jiro@example.com
5 | 高橋美咲 | 35 | misaki@example.com
20歳以上30歳以下の人を検索してみます。
SELECT *
FROM users
WHERE age BETWEEN 20 AND 30;
実行結果は次の通りです。
id | name | age | email
---+------------+-----+-------------------
2 | 佐藤花子 | 22 | hanako@example.com
3 | 鈴木一郎 | 27 | ichiro@example.com
このように、ageが20から30までの範囲に入っているデータだけが表示されます。31歳や35歳は含まれません。
4. 日付の範囲検索にも使える
BETWEENは数字だけでなく、日付の範囲検索にも使えます。例えば、注文日の期間を指定することができます。
id | order_date | amount
---+------------+--------
1 | 2024-01-05 | 5000
2 | 2024-02-10 | 8000
3 | 2024-03-15 | 6000
4 | 2024-04-01 | 9000
SELECT *
FROM orders
WHERE order_date BETWEEN '2024-02-01' AND '2024-03-31';
id | order_date | amount
---+------------+--------
2 | 2024-02-10 | 8000
3 | 2024-03-15 | 6000
このように、指定した日付の期間内にあるデータを簡単に取得できます。MySQLのWHERE句でBETWEENを使う方法は、売上分析や期間集計でもよく使われます。
5. 文字列でもBETWEENは使える
実は、BETWEENは文字列にも使えます。アルファベット順での範囲検索が可能です。
SELECT *
FROM users
WHERE name BETWEEN '佐藤' AND '田中';
これは、文字の並び順をもとに範囲を指定します。ただし、日本語では思った通りにならない場合もあるため、初心者の方はまず数値や日付で使い方をしっかり覚えると安心です。
6. NOT BETWEENで範囲外を検索する
BETWEENの前にNOTを付けると、「その範囲以外」という意味になります。
SELECT *
FROM users
WHERE age NOT BETWEEN 20 AND 30;
実行結果は次の通りです。
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 18 | taro@example.com
4 | 田中次郎 | 31 | jiro@example.com
5 | 高橋美咲 | 35 | misaki@example.com
このように、20歳から30歳の範囲に入らないデータだけを取り出すことができます。
7. BETWEENを使うときの注意点
MySQLのWHERE句でBETWEENを使う方法で大切なのは、開始の値と終了の値の順番です。小さい値から大きい値の順番で書く必要があります。
また、BETWEENは「以上」「以下」を含むという点を忘れないようにしましょう。もし「より大きい」「より小さい」といった条件にしたい場合は、BETWEENではなく不等号を使います。
SQL初心者の方は、まずは簡単な数値の範囲検索から練習し、MySQLのWHERE句と条件検索の基本をしっかり身につけることが大切です。BETWEENはシンプルですが、実務でも頻繁に使われる重要なSQL構文です。
まとめ
今回は、MySQLのWHERE句でBETWEENを使う方法について、SQL初心者の方にも理解しやすいように解説しました。BETWEENは、データベースから特定の範囲に含まれるデータを効率よく検索するための基本構文です。MySQLのWHERE句と組み合わせることで、数値の範囲検索、日付の期間指定、さらには文字列の並び順による抽出まで、さまざまな条件検索が可能になります。
BETWEENの最大の特徴は、「値1以上、値2以下」という条件で検索できることです。つまり、開始値と終了値の両方を含む範囲指定になります。この「以上」「以下」を含むという点は、SQLの条件式を理解するうえで非常に重要です。MySQLのWHERE句でBETWEENを使う方法を正しく理解することで、実務でのデータ抽出や売上分析、会員情報の管理、期間集計などにも応用できます。
例えば、usersテーブルから年齢が20歳以上30歳以下のレコードを取得する場合、次のように書きます。
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 18 | taro@example.com
2 | 佐藤花子 | 22 | hanako@example.com
3 | 鈴木一郎 | 27 | ichiro@example.com
4 | 田中次郎 | 31 | jiro@example.com
5 | 高橋美咲 | 35 | misaki@example.com
6 | 伊藤健太 | 29 | kenta@example.com
SELECT *
FROM users
WHERE age BETWEEN 20 AND 30;
実行結果は次の通りです。
id | name | age | email
---+------------+-----+-------------------
2 | 佐藤花子 | 22 | hanako@example.com
3 | 鈴木一郎 | 27 | ichiro@example.com
6 | 伊藤健太 | 29 | kenta@example.com
このように、BETWEENを使うことで、複雑な不等号を複数組み合わせなくても、簡潔なSQLで範囲検索ができます。SQL初心者にとっては、可読性が高く、理解しやすい書き方であることも大きなメリットです。
また、NOT BETWEENを使えば、指定した範囲外のデータを取得することも可能です。条件検索の幅が広がり、データベース操作の柔軟性が高まります。
SELECT *
FROM users
WHERE age NOT BETWEEN 20 AND 30;
実行結果は次の通りです。
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 18 | taro@example.com
4 | 田中次郎 | 31 | jiro@example.com
5 | 高橋美咲 | 35 | misaki@example.com
MySQLのWHERE句でBETWEENを使う方法は、SQL基礎の中でも特に重要な範囲検索のテクニックです。数値だけでなく、日付型や文字列型にも応用できるため、実務レベルのデータ抽出にも直結します。データベースを扱ううえで、条件検索を正確に書けることは非常に大切です。BETWEENの構文、意味、注意点をしっかり理解し、繰り返し練習することで、SQLの理解度は確実に高まります。
特に初心者の方は、まずは小さなテーブルを作成し、MySQLでSELECT文とWHERE句を使った検索を何度も試してみましょう。範囲検索の考え方が身につけば、データベース設計や集計処理、分析業務にもスムーズに進めるようになります。
生徒
「MySQLのWHERE句でBETWEENを使うと、ある値からある値までをまとめて検索できるんですね。」
先生
「その通りです。しかも、開始値と終了値の両方を含むという点が大切です。以上と以下を同時に指定できるのがBETWEENの特徴です。」
生徒
「不等号を二つ書かなくてもいいので、SQLがすっきりしますね。数値だけでなく日付にも使えるのが便利だと思いました。」
先生
「はい。売上の期間集計や会員の年齢層分析など、実務でもよく使われます。MySQLのWHERE句とBETWEENの使い方を理解しておくと、データ抽出の幅が大きく広がります。」
生徒
「NOT BETWEENを使えば範囲外も検索できるので、条件検索のパターンが増えました。SQL初心者ですが、自信がつきました。」
先生
「とても良い理解です。これからもSELECT文、WHERE句、BETWEENなどの基本構文を一つずつ身につけていきましょう。基礎がしっかりしていれば、どんなデータベース操作にも応用できますよ。」