SQL - BETWEEN演算子
こんにちは、未来のSQL魔法使いたち!今日は、BETWEEN演算子の世界に興味深く飛び込みましょう。あなたの近所の親切なコンピュータサイエンスの先生として、私は多くの例と少しのユーモアを交えて、この冒険を案内します。那么、バーチャルの杖(キーボード)を握りしめ、始めましょう!
SQLのBETWEEN演算子
パーティを計画して、特定の年齢範囲に該当する友人を招待したいとします。これがSQLのBETWEEN演算子がやることです。データの特定の範囲を選択するのを助けます。さあ、潜りましょう!
基本的な構文
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
初めて見ると少し脅かされるかもしれませんが、心配しないでください!いくつかの例で分解していきます。
例1: 価格範囲内の製品を選択
オンラインストアのデータベースに「Products」というテーブルがあるとします。価格が$50から$100の間にあるすべての製品を見つけたいとします。
SELECT * FROM Products
WHERE Price BETWEEN 50 AND 100;
このクエリは、Priceが$50から$100の間にあるすべての製品のすべての列(*)をProductsテーブルから返します。これは、「$50以上で$100以下の価格のすべての製品を見せてください」と言うのに似ています。
例2: 日付範囲
BETWEEN演算子は数字だけでなく、日付にも対応しています!「Orders」というテーブルがあるとします。2023年に注文されたすべての注文を見つけたいとします。
SELECT * FROM Orders
WHERE OrderDate BETWEEN '2023-01-01' AND '2023-12-31';
このクエリは、2023年1月1日から2023年12月31日までのすべての注文をOrdersテーブルから取得します。これは、「2023年に受け取った注文を教えてください」とデータベースに尋ねるのに似ています。
BETWEEN演算子とIN演算子の組み合わせ
少し凝らしてみましょう!BETWEENとIN演算子を組み合わせて、より複雑なクエリを作成できます。パーティの招待リストに特定の年齢範囲と名前を含めることに似ています。
例3: BETWEENとINを組み合わせる
25歳から35歳までの年齢で、ITまたはHR部署で働いている従業員を見つけたいとします。
SELECT * FROM Employees
WHERE (Age BETWEEN 25 AND 35)
AND Department IN ('IT', 'HR');
このクエリは、「25歳から35歳までの年齢で、ITまたはHR部署で働いているすべての従業員を見せてください」と言うのに似ています。検索基準を絞り込むのに役立ちます。
BETWEEN演算子とUPDATE文
時には特定の範囲内のデータを更新する必要があります。UPDATE文でBETWEENを使ってみましょう。
例4: 給料の更新
$50,000から$70,000の間で働いているすべての従業員に10%の給料アップをしたいとします。
UPDATE Employees
SET Salary = Salary * 1.10
WHERE Salary BETWEEN 50000 AND 70000;
このクエリは、指定された給料範囲内のすべての従業員の給料を10%増加させます。これは、中所得の従業員にボーナスを与えるのに似ています!
BETWEEN演算子とDELETE文
BETWEEN演算子はDELETE文でも使えるので、特定の範囲内のデータを削除するのに便利です。
例5: 古いレコードの削除
2020年のすべての注文を削除してデータベースを整理したいとします。
DELETE FROM Orders
WHERE OrderDate BETWEEN '2020-01-01' AND '2020-12-31';
このクエリは、2020年に注文されたすべての注文を削除します。これは、データベースのデジタル春掃除に似ています!
NOT BETWEEN演算子
特定の範囲外のデータを見つけたい場合は、NOT BETWEEN演算子が便利です。
例6: 価格範囲外の製品を見つける
$20未満または$100超の価格のすべての製品を見つけたいとします。
SELECT * FROM Products
WHERE Price NOT BETWEEN 20 AND 100;
このクエリは、価格が$20未満または$100超のすべての製品を返します。これは、「予算に優しいアイテムと高級アイテムを見せてください。中間のものは不要です」と言うのに似ています。
NOT BETWEEN演算子とIN
最後に、NOT BETWEENとIN演算子を組み合わせてさらに正確なクエリを作成します。
例7: 複雑な除外クエリ
30歳から50歳までの年齢で、セールスまたはマーケティング部署で働いていない従業員を見つけたいとします。
SELECT * FROM Employees
WHERE (Age NOT BETWEEN 30 AND 50)
AND Department NOT IN ('Sales', 'Marketing');
このクエリは、30歳未満または50歳超で、セールスまたはマーケティング部署で働いていない従業員を見つけます。これは、「若い従業員とベテラン従業員で、顧客対応部署に所属していない人を見せてください」と言うのに似ています。
BETWEEN演算子の方法の摘要
以下の表は、BETWEEN演算子の使い方をまとめたものです:
メソッド | 説明 | 例 |
---|---|---|
BETWEEN | 指定された範囲内の値を選択 | WHERE Price BETWEEN 50 AND 100 |
BETWEENと日付 | 指定された日付範囲内のデータを選択 | WHERE OrderDate BETWEEN '2023-01-01' AND '2023-12-31' |
BETWEENとIN | 範囲とリストの選択を組み合わせ | WHERE (Age BETWEEN 25 AND 35) AND Department IN ('IT', 'HR') |
BETWEENとUPDATE | 指定された範囲内の値を更新 | UPDATE Employees SET Salary = Salary * 1.10 WHERE Salary BETWEEN 50000 AND 70000 |
BETWEENとDELETE | 指定された範囲内のレコードを削除 | DELETE FROM Orders WHERE OrderDate BETWEEN '2020-01-01' AND '2020-12-31' |
NOT BETWEEN | 指定された範囲外の値を選択 | WHERE Price NOT BETWEEN 20 AND 100 |
NOT BETWEENとIN | 範囲の除外とリストの選択を組み合わせ | WHERE (Age NOT BETWEEN 30 AND 50) AND Department NOT IN ('Sales', 'Marketing') |
そして、皆さん!BETWEEN演算子の世界を一緒に旅しました。_practice makes perfect_ですので、自分のデータセットでこれらのクエリを試してみてください。幸せなSQLを、そしてあなたのクエリが常に期待通りの結果を返すことを祈っています!
Credits: Image by storyset