MySQL - Operator BETWEEN: Hướng dẫn cho người mới bắt đầu

Xin chào các bạn đam mê cơ sở dữ liệu! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới của MySQL, cụ thể là tập trung vào toán tử BETWEEN. Đừng lo lắng nếu bạn mới bắt đầu học lập trình; tôi sẽ là người bạn thân thiện của bạn, giải thích mọi thứ từng bước. Vậy, chúng ta cùng bắt đầu nhé!

MySQL - Between Operator

Toán tử BETWEEN là gì?

Hãy tưởng tượng bạn đang sắp xếp kệ sách của mình. Bạn muốn tìm tất cả các cuốn sách được xuất bản giữa năm 2010 và 2020. Đó chính xác là điều mà toán tử BETWEEN giúp chúng ta làm trong MySQL - nó cho phép chúng ta chọn các giá trị trong một khoảng nhất định.

Cú pháp cơ bản

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

Hãy phân tích này:

  • SELECT: Điều này giống như nói "Tôi muốn xem..."
  • column_name(s): Đây là những thông tin cụ thể mà bạn muốn xem
  • FROM table_name: Đây là nơi lưu trữ thông tin
  • WHERE: Đây là cách chúng ta đặt điều kiện
  • BETWEEN value1 AND value2: Đây là khoảng của chúng ta

Toán tử BETWEEN trong hành động

Giả sử chúng ta có một bảng叫做 books với các cột id, title, author, và publication_year. Dưới đây là cách chúng ta có thể sử dụng BETWEEN:

SELECT title, author, publication_year
FROM books
WHERE publication_year BETWEEN 2010 AND 2020;

Truy vấn này sẽ hiển thị tất cả các cuốn sách được xuất bản giữa năm 2010 và 2020, bao gồm cả hai năm đó. Điều này giống như hỏi, "Hiển thị cho tôi tất cả các cuốn sách từ năm 2010 đến và bao gồm năm 2020."

BETWEEN với ngày tháng

BETWEEN hoạt động rất tốt với các ngày tháng nữa! Giả sử chúng ta có một bảng orders:

SELECT order_id, customer_name, order_date
FROM orders
WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';

Điều này sẽ hiển thị tất cả các đơn hàng được đặt vào năm 2023. Đẹp phải không?

MySQL BETWEEN với toán tử IN

Bây giờ, hãy làm cho mọi thứ thú vị hơn một chút. Giả sử chúng ta muốn tìm các cuốn sách được xuất bản giữa năm 2010 và 2020, nhưng chỉ của một số tác giả nhất định? Đó là nơi chúng ta kết hợp BETWEEN với 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');

Truy vấn này giống như nói, "Hiển thị cho tôi các cuốn sách từ năm 2010 đến 2020, nhưng chỉ nếu chúng được viết bởi những tác giả cụ thể này."

MySQL BETWEEN với câu lệnh UPDATE

Đôi khi, chúng ta không chỉ muốn xem dữ liệu - chúng ta muốn thay đổi nó. Giả sử chúng ta muốn áp dụng giảm giá 10% cho tất cả các sản phẩm có giá介于 $50 và $100:

UPDATE products
SET price = price * 0.9
WHERE price BETWEEN 50 AND 100;

Truy vấn này cập nhật giá cả, áp dụng giảm giá 10% cho các sản phẩm trong khoảng chúng ta chỉ định.

Toán tử BETWEEN với câu lệnh DELETE

Toán tử BETWEEN cũng có thể được sử dụng khi chúng ta muốn xóa dữ liệu. Hãy tưởng tượng chúng ta muốn xóa tất cả các đơn hàng từ quý đầu tiên của năm 2023:

DELETE FROM orders
WHERE order_date BETWEEN '2023-01-01' AND '2023-03-31';

Điều này xóa tất cả các đơn hàng được đặt trong ba tháng đầu tiên của năm 2023. Hãy cẩn thận với các câu lệnh DELETE - luôn kiểm tra kỹ trước khi chạy chúng!

MySQL NOT BETWEEN

Đôi khi, chúng ta muốn tất cả các thứ ngoài một khoảng nhất định. Đó là nơi NOT BETWEEN rất hữu ích:

SELECT title, author, publication_year
FROM books
WHERE publication_year NOT BETWEEN 2010 AND 2020;

Truy vấn này hiển thị tất cả các cuốn sách được xuất bản trước năm 2010 hoặc sau năm 2020.

NOT BETWEEN với toán tử IN

Chúng ta có thể kết hợp NOT BETWEEN với IN để có các truy vấn cụ thể hơn:

SELECT product_name, price
FROM products
WHERE price NOT BETWEEN 50 AND 100
AND category IN ('Electronics', 'Appliances');

Truy vấn này tìm các sản phẩm trong các danh mục Điện tử hoặc Đồ gia dụng mà có giá hoặc dưới $50 hoặc trên $100.

Sử dụng toán tử BETWEEN trong chương trình client

Khi sử dụng BETWEEN trong một chương trình client (như một đoạn mã PHP), bạn có thể làm điều gì đó như thế này:

<?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>";
}
?>

Đoạn mã PHP này chuẩn bị một truy vấn với các placeholder, liên kết các giá trị, thực thi truy vấn và sau đó hiển thị kết quả.

Kết luận

Và đây bạn đã có nó, các bạn! Chúng ta đã cùng nhau hành trình qua thế giới của toán tử BETWEEN trong MySQL. Từ các truy vấn cơ bản đến cập nhật và xóa, chúng ta đã thấy toán tử này có thể linh hoạt như thế nào. Nhớ rằng, thực hành là chìa khóa, vì vậy đừng ngần ngại thử nghiệm với các truy vấn của riêng bạn.

Dưới đây là bảng tóm tắt các phương pháp chúng ta đã覆盖:

Phương pháp Mô tả
BETWEEN Chọn các giá trị trong một khoảng nhất định
BETWEEN với IN Kết hợp khoảng và chọn giá trị cụ thể
BETWEEN với UPDATE Cập nhật các bản ghi trong một khoảng cụ thể
BETWEEN với DELETE Xóa các bản ghi trong một khoảng cụ thể
NOT BETWEEN Chọn các giá trị ngoài một khoảng nhất định
NOT BETWEEN với IN Kết hợp loại trừ một khoảng với chọn giá trị cụ thể

Chúc các bạn vui vẻ khi truy vấn, và may mắn để cơ sở dữ liệu của bạn luôn được tổ chức và hiệu quả!

Credits: Image by storyset