MySQLのBETWEENで狙ったデータを取得!【ハンズオン付き】
  • facebookページ
  • twitterページ
  • 2019.12.16

    MySQLのBETWEENで狙ったデータを取得!【ハンズオン付き】

    MySQLのBETWEENで狙ったデータを取得!【ハンズオン付き】

    MySQLのBETWEENは範囲検索を行う際にとても便利な演算子です。SELECTステートメントを使用することができるのであれば、ぜひ覚えておきたい機能ですね。そこで今回の記事では、MySQL BETWEENの主な機能をご紹介しつつ、実際に使用する方法をハンズオンで体験していきましょう。

    本記事の要点
    • MySQLのBETWEENはSELECTとともに使用できる範囲検索演算子
    • MySQLを使ったBETWEENのハンズオン

    MySQL BETWEENとは

    MySQLのBETWEENは、指定した範囲(最小値〜最大値)に当てはまるデータを抽出する機能を持っています。指定する範囲は数値だけでなく、文字列や日付などを当てはめることも可能です。SELECTステートメントだけを使用するとテーブルの全てのデータを取得することしかできません。そこで、BETWEENを使用することで抽出したい範囲のデータのみを抽出することができるのです。

    MySQL BETWEENの構文を以下で見てみましょう。

    基本的には、BETWEENの後に「最小値」「最大値」を指定することで、指定した範囲に該当するデータを抽出できます。

    また以下のように記述することで、指定した範囲以外のデータを抽出できます

    どちらもBETWEENを使用する際には、「WHERE」が必要であるということを忘れないでください。

    SELECTステートメントの構文を覚えている方であれば、BETWEENの加わる構文も難しくはないはずです。実際にMySQLのBETWEENが使用されている構文を見て、さらに理解を深めましょう。

    MySQLのBETWEENを使用した例

    以下のようなテーブルがある前提で説明を進めます。

    animalsテーブル

    上記のテーブルからageカラムが「1」から「10」までのレコードを出力してみましょう。

    BETWEENを含むSELECTステートメント

    出力結果

    BETWEENの範囲に「1〜10」と指定したため、ageカラムに「1〜10」の値が入っているレコードが抽出できました。

    文字列の範囲についても見てみましょう。

    BETWEENを含むSELECTステートメント

    出力結果

    範囲に「BETWEEN ‘a’ AND ‘e’」と指定することで「頭文字がaからeの直前までの範囲のレコード」を抽出することができます。

    ポテパンダの一言メモ

    文字列の範囲指定における注意点は「BETWEEN ‘a’ AND ‘e’」と指定しても「頭文字eのレコード」は抽出されないということです。文字列は指定した最大値の直前の文字までが範囲となることに注意しましょう。もし「頭文字e」までを含めたい場合には「BETWEEN ‘a’ AND ‘f’」と指定する必要があります。

    【関連記事】
    ▶︎【テーブル編集】MySQLのALTER TABLEの使い方まとめ
    ▶︎【WHERE DATE句】MySQL 日付・時間処理関数の使い方まとめ10選

    MySQLでBETWEENハンズオンにトライ

    こちらでは、実際にMySQLというデータベースを使用してBETWEENを使ってみましょう。

    準備

    まずはMySQLを使用するための準備をしていきます。

    MySQLのインストール・接続

    まだMySQLをインストールしていない場合は、インストールしましょう。

    MySQLのインストールが終了したら、接続します。

    データベースの作成

    次にデータベースをMySQL上に作成し、使用するデータベースを指定しましょう。

    これでMySQLを使用する準備は完了しました。

    ベースとなるテーブルの作成

    次にベースとなるテーブルを作成しましょう。

    テーブルの状態

    MySQL BETWEENのシンプルな範囲検索

    それでは、最初に見た例のような範囲検索を体験してみましょう。country_populationテーブルから「population」カラムが「150000000〜999999999」の範囲に当たるレコードを抽出します。

    BETWEENを含むSELECTステートメント

    出力結果

    BETWEEN以降に「150000000 AND 999999999」と指定したことで、populationカラムが最小値150000000・最大値999999999の範囲に当たるレコードの抽出ができました。

    BETWEENの前に「NOT」をつけ、先ほどと真逆の範囲を対象にレコードを抽出してみましょう。

    NOT BETWEENを含むSELECTステートメント

    出力結果

    MySQL BETWEENのシンプルな範囲検索2

    次に文字列を指定して範囲検索を行い、結果を出力してみましょう。

    WHERE BETWEEN句を含むSELECTステートメント

    出力結果

    BETWEEN以降に「’A’ AND ‘D’」と指定したことで、countryカラムから「頭文字がA〜C(Dの1つ手前のアルファベット)」の範囲に当たるレコードの抽出ができました。

    まとめ

    今回の記事では、MySQL BETWEENの主な機能をご紹介しつつ、実際に使用する方法をハンズオンで体験していきました。使ってみると非常に簡単なBETWEENですが、範囲検索を行う際には非常に便利です。ぜひ、範囲検索を行う際に利用してみましょう。

    【関連記事】
    ▶︎MySQLのleft joinサンプルコード onとusingの結合条件指定の違いは?
    ▶︎MySQLのUPDATEの基本とデータベースに格納された値を効率よく変更する方法



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE