MySQL - Between演算子:初級者向けガイド
こんにちは、データベース愛好家の皆さん!今日は、MySQLの世界に踏み込み、特にBETWEEN演算子に焦点を当てて楽しい旅をすることになります。プログラミングの初心者であれば心配しないでください。私はあなたの親切なガイドとして、すべてをステップバイステップで説明します。それでは、始めましょう!
BETWEEN演算子とは?
本棚を整理しているとします。2010年から2020年にかけて出版されたすべての本を見つけたいですよね。これがMySQLでBETWEEN演算子を使うことの具体例です。BETWEEN演算子は、指定された範囲内の値を選択するのに役立ちます。
基本的な構文
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
これを分解すると:
-
SELECT
:これは「私はこれを見たい」と言うことです -
column_name(s)
:これらはあなたが見たい特定の情報です -
FROM table_name
:これが情報が保存されている場所です -
WHERE
:これは条件を設定する方法です -
BETWEEN value1 AND value2
:これは私たちの範囲です
MySQL BETWEEN演算子の実装
例えば、books
というテーブルがあり、id
、title
、author
、publication_year
というカラムがあるとします。以下のようにBETWEENを使うことができます:
SELECT title, author, publication_year
FROM books
WHERE publication_year BETWEEN 2010 AND 2020;
このクエリは、2010年から2020年(含む)に出版されたすべての本を表示します。まるで「2010年から2020年までの本を見せてくれ」と言っているようなものです。
日付を使ったBETWEEN
BETWEENは日付にも非常に効果的です。例えば、orders
テーブルがあるとします:
SELECT order_id, customer_name, order_date
FROM orders
WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';
これは2023年に注文されたすべての注文を表示します。素晴らしいですね?
MySQL BETWEENとIN演算子の組み合わせ
少し凝らしてみましょう。2010年から2020年にかけて出版された本を特定の著者だけ見つけたい場合どうしますか?その場合、BETWEENとINを組み合わせます:
SELECT title, author, publication_year
FROM books
WHERE publication_year BETWEEN 2010 AND 2020
AND author IN ('J.K. Rowling', 'George R.R. Martin', 'Stephen King');
このクエリは、「2010年から2020年までの本を、これらの特定の著者が書いたものだけ見せてくれ」と言っているようなものです。
MySQL BETWEENとUPDATE文
データを表示するだけでなく、変更したい場合もあります。例えば、50ドルから100ドルの範囲にあるすべての商品に10%の割引を与えたいとします:
UPDATE products
SET price = price * 0.9
WHERE price BETWEEN 50 AND 100;
このクエリは、指定された範囲内の価格に10%の割引を適用します。
BETWEEN演算子とDELETE文
データを削除する場合にもBETWEENを使うことができます。例えば、2023年の第一季度に注文されたすべての注文を削除したい場合:
DELETE FROM orders
WHERE order_date BETWEEN '2023-01-01' AND '2023-03-31';
これは2023年の最初の3ヶ月間に注文されたすべての注文を削除します。DELETE文は慎重に使用してください!
MySQL NOT BETWEEN演算子
特定の範囲外のすべてのものを見つけたい場合、NOT BETWEENが便利です:
SELECT title, author, publication_year
FROM books
WHERE publication_year NOT BETWEEN 2010 AND 2020;
このクエリは、2010年以前または2020年以降に出版されたすべての本を表示します。
NOT BETWEEN演算子とIN演算子の組み合わせ
さらに特定のクエリを行いたい場合は、NOT BETWEENとINを組み合わせます:
SELECT product_name, price
FROM products
WHERE price NOT BETWEEN 50 AND 100
AND category IN ('Electronics', 'Appliances');
このクエリは、EletronicsまたはAppliancesカテゴリーに属し、50ドル未満または100ドル超の価格を持つ商品を探します。
クライアントプログラムでのBETWEEN演算子の使用
BETWEENをクライアントプログラム(例えばPHPスクリプト)で使用する場合、以下のようなことができます:
<?php
$min_price = 50;
$max_price = 100;
$query = "SELECT product_name, price FROM products WHERE price BETWEEN ? AND ?";
$stmt = $conn->prepare($query);
$stmt->bind_param("dd", $min_price, $max_price);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo $row['product_name'] . ": $" . $row['price'] . "<br>";
}
?>
このPHPスクリプトは、プレースホルダーを使ったクエリを準備し、値をバインドし、クエリを実行して結果を表示します。
結論
そして、皆さん!MySQLのBETWEEN演算子の世界を旅しました。基本的な選択から更新、削除まで、この小さな演算子がどれほど多様であるかを確認しました。練習は完璧を生みますので、自分自身のクエリで実験してみてください。
以下は、私たちがカバーした方法の簡単な参照表です:
メソッド | 説明 |
---|---|
BETWEEN | 指定された範囲内の値を選択 |
BETWEENとIN | 範囲と特定の値の選択を組み合わせ |
BETWEENとUPDATE | 特定範囲内の記録を更新 |
BETWEENとDELETE | 特定範囲内の記録を削除 |
NOT BETWEEN | 指定された範囲外の値を選択 |
NOT BETWEENとIN | 範囲の排除と特定の値の選択を組み合わせ |
快適なクエリを行い、データベースは常に整理整頓された状態を保ちましょう!
Credits: Image by storyset