【SQL超入門講座】15.BETWEEN|区間を指定して抽出する方法

sql15
SQL超入門講座

この記事の執筆・監修

キノコード
キノコード    

テクノロジーアンドデザインカンパニー株式会社のCEO。
日本最大級のプログラミング教育のYouTubeチャンネル「キノコード」や、プログラミング学習サービス「キノクエスト」を運営。
著書「あなたの仕事が一瞬で片付くPythonによる自動化仕事術」や、雑誌「日経ソフトウエア」や「シェルスクリプトマガジン」への寄稿など実績多数。

挨拶

こんにちは、キノコードです。
以前の動画、2つ以上の条件式を組み合わせてデータ抽出をする方法について解説しました。
そこの解説したAND条件の知識を使えば、売上金額が10000円以上、20000円以下といった条件を不等号を使ってデータ抽出することができます。
ただ、他にも、同様のこのことが、今回紹介するBETWEENを使うと、売上金額が10000円以上、20000円以下といった条件でデータ抽出することができます。
抽出結果は不等号を使ったやり方と同じですが、BETWEENを使うと可読性、つまり、判読しやすいSQLを書くことができます。
また、データ抽出の速度もあがります。
今までSQL超入門講座を勉強した方であれば、簡単にマスターできると思います。
最後までご視聴ください。

BETWEENについて

BETWEENは、冒頭でも話したように範囲指定をするときに使います。
BETWEENは、具体的には、WHERE句で使います。
範囲指定できるものとして、数値、日付や時間、文字列などを使用できます。
SQLを構文をみてみましょう。

SELECT *
FROM テーブル名
WHERE カラム名 BETWEEN 下限値 AND 上限値

この書き方だと「WHERE句のカラム名が下限値から上限値の間の値のデータを取ってくる」というSQL文です。
なお、以前のレッスンで解説をした、不等号を使っての書き方で表すと、こうなります。

SELECT *
FROM テーブル名
WHERE カラム名 >= 下限値 AND [カラム名] <= 上限値

BETWEENを使えば、カラム名を2回書かなくて済むのでSQL文がスッキリしますね。つまり、可読性があがります。
また、BETWEENの前にNOTをつけることで、指定範囲外の値を条件にして抽出することができます。
では、実際にテーブルを使って書いてみましょう。

BETWEENの使い方

まずはテーブルのtest_tableから、「売上金額」が「10000円以上、20000円以下」のデータを抽出してみましょう。
SQLはこのように書きます。

SELECT *
FROM test_table
WHERE 売上金額 BETWEEN 10000 AND 20000

これで、「売上金額」が「10000円以上20000円以下」のデータ35件抽出されました!
「売上金額」のカラムは数字型です。
したがって、今見たように、数字型の範囲指定はできますね。

では次に「売上日」が「2020年3月」のデータです。

SELECT *
FROM test_table
WHERE 売上日 BETWEEN '2020-03-01' AND '2020-03-31'

これで、「売上日」が「2020年3月」のデータが19件抽出されました。
「売上日」のカラムは文字列型です。
つまり、BETWEENは文字列の範囲指定もできるということです。
今回は日付型のカラムがないので割愛しますが、日付型でもデータ抽出することができます。

SELECT *
FROM test_table
WHERE 売上金額 NOT BETWEEN 10000 AND 20000

それではこの条件で、以前のレッスンで使用した、「NOT」演算子と併用してみましょう。
WHEREで指定したカラムの後にNOTをつけることで、「売上金額」が「10000円以上20000円以下」「以外」ということになります。
つまり、「売上金額」が「10000円未満、または、20000円を超える」という条件です。
実行します。
189件のデータが抽出されました。

先ほど、「10000円以上、20000円以下」のデータは35件でした。
今回の「10000円以上、20000円以下」以外のデータは、189件でした。
トータルの件数が224件なので、正しく抽出できるていることが確認できます。
以上が、基本的なBETWEENの使い方です。

挨拶

さて、BETWEENの説明と使用例でしたが、いかがでしたでしょうか?
キノコードでは、これからも色々なSQLのコードについての動画を出していこうと思っています。
気に入っていただけましたら、ぜひチャンネル登録をお願いします!
それではまた次のレッスンで。

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト