Toán tử điều kiện BETWEEN trong SQL - Định nghĩa, Cách dùng

Nội dung được viết bởi Kim Thu

Bài trước, Gitiho đã hướng dẫn bạn cách tìm kiếm giá trị theo những điều kiện nhất định bằng câu lệnh Where kết hợp với các toán tử and, or, in, not in. Tuy nhiên, có một số trường hợp chúng ta cần tìm nhiều điều kiện liên tiếp nhau hoặc nằm là trong một khoảng nào đấy. 

Thì lúc này nếu dùng AND bạn sẽ phải viết ra rất nhiều giá trị trong khoảng cần tìm ở câu lệnh. Do đó, chúng ta sẽ có toán tử BETWEEN trong SQL có thể rút ngắn độ dài câu lệnh và giúp bạn tiết kiệm nhiều thời gian truy vấn hơn. Cùng xem nhé.

BETWEEN trong SQL là gì?

BETWEEN là một toán tử trong SQL thường dùng để truy vấn các giá trị nằm trong khoảng nhất định. Bạn sẽ đưa ra 2 giá trị và BETWEEN sẽ giúp bạn tìm kiếm các kết quả nằm giữa hai giá trị mà bạn chỉ định, bao gồm cả hai giá trị này.

Cú pháp chứa toán tử BETWEEN cơ bản:

SELECT column_name
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

Trong đó:

  • column_name: là trường (cột) mà bạn muốn kiểm tra giá trị.
  • table_name: là bảng chứa cột đó.
  • value1 và value2: là hai giá trị mà bạn muốn giới hạn phạm vi tìm kiếm.

Các ví dụ về toán tử BETWEEN

Đầu tiên, chúng ta sẽ dùng câu lệnh SELECT trong SQL để lấy ra một đoạn dữ liệu thuộc bảng Sales trong Database như sau:

Toán tử điều kiện BETWEEN trong SQL - Định nghĩa, Cách dùng

Yêu cầu 1: Trích xuất toàn bộ giao dịch bán hàng trong khoảng từ tháng 2 đến tháng 7 với toán tử BETWEEN.

Cách làm:

Dựa theo cấu trúc mẫu, chúng ta sẽ biến đổi câu lệnh như sau:

SELECT * FROM Sales
WHERE Month BETWEEN 2 AND 7

Nhấn chạy câu lệnh, chúng ta sẽ thu được kết quả 5077 bản ghi chứa doanh thu từ tháng 7 đến tháng 8.

Toán tử điều kiện BETWEEN trong SQL - Định nghĩa, Cách dùng

Yêu cầu 2: Tìm toàn bộ giao dịch phát sinh trong tháng 7 và từ ngày 22 đến ngày 26.

Với yêu cầu này thì chúng ta có 2 điều kiện, một là giao dịch phát sinh trong tháng 7, hai là cụ thể trong khoảng ngày 22 đến 26. Chúng ta có cú pháp chứa toán tử AND để kết hợp nhiều điện kiện mà bắt buộc các điều kiện này phải đồng thời xảy ra:

SELECT * FROM Sales
WHERE (sales.Month=7) AND (Sale_Date BETWEEN 22 and 26)

Trong đó: 

  • SELECT * FROM Sales: Chọn tất cả các cột từ bảng Sales.
  • WHERE (sales.Month=7): Chỉ chọn các bản ghi có giá trị của cột Month là 7 (tháng 7).
  • AND (Sale_Date BETWEEN 22 AND 26): Trong các bản ghi đó, chỉ chọn những bản ghi có giá trị của cột Sale_Date nằm trong khoảng từ 22 đến 26 (tức là từ ngày 22 đến ngày 26).

Nhấn chạy công thức và đây là thông tin mà chúng ta nhận được bao gồm 143 bản ghi thỏa mãn các điều kiện theo yêu cầu:

Toán tử điều kiện BETWEEN trong SQL - Định nghĩa, Cách dùng

Yêu cầu 3: Tìm kiếm các giao dịch có ID khách hàng là 11356 trong khoảng từ tháng 6 đến tháng 10.

Tương tự với ví dụ số 2, chúng ta sẽ thay đổi 2 điều kiện trong cú pháp đó là Customer ID số tháng là từ 6 đến 10 như sau:

SELECT * FROM Sales
WHERE (Customer ID=11356) AND (sales.Month BETWEEN 6 and 10)

Nhấn chạy công thức, chúng ta sẽ được 3 kết quả thỏa mãn các điều kiện của đề bài:

Toán tử điều kiện BETWEEN trong SQL - Định nghĩa, Cách dùng

Yêu cầu 4: Tìm tất cả những bản ghi có Customer ID là 11356 và giá trị sale amount (số lượng bán hàng) với các điều kiện lần lượt là:

  • Giá trị lớn hơn 100.
  • Nhỏ hơn 1000
  • Trong khoảng 100 đến 1000.

Chúng ta có câu lệnh như sau:

SELECT * FROM Sales
WHERE (CustomerID=11356) AND (sales>100)

Cho chạy công thức, chúng ta sẽ thu được 8 bản ghi như sau:

Toán tử điều kiện BETWEEN trong SQL - Định nghĩa, Cách dùng

Tiếp theo, tương tự chúng ta sẽ có 2 công thức để truy xuất dữ liệu dựa trên 2 điều kiện còn lại:

SELECT * FROM Sales
WHERE (CustomerID=11356) AND (sales<1000)

Công thức này sẽ thu được 6 bản ghi bao gồm:

Toán tử điều kiện BETWEEN trong SQL - Định nghĩa, Cách dùng

Và công thức cuối cùng:

SELECT * FROM Sales
WHERE (CustomerID=11356) AND (sales BETWEEN 100 AND 1000)

Kết quả thu về 4 bản ghi như mong muốn:

Toán tử điều kiện BETWEEN trong SQL - Định nghĩa, Cách dùng

Trong 4 ví dụ trên, chúng ta có thể thấy nếu sử dụng câu lệnh BETWEEN sẽ giúp cho câu lệnh của chúng ta ngắn gọn và dễ nhìn hơn, thay vì sử dụng toán tử AND đối với các tìm kiếm nhiều điều kiện.

Để thành thạo câu lệnh BETWEEN nâng cao tìm kiếm theo khoảng và nhiều câu lệnh hữu ích khác trong SQL, bạn có thể tham khảo khóa học SQL cơ bản đến nâng cao sau tại Gitiho:

Câu lệnh NOT BETWEEN trong SQL

Ở phần trên chúng ta đã tìm kiếm các giá trị nằm trong khoảng nào đó bằng toán tử BETWEEN, vậy nếu như muốn tìm giá trị không thuộc một khoảng nhất định thì sao? Ngay sau đây, Gitiho sẽ giới thiệu tới bạn toán tử NOT BETWEEN để lọc các giá trị ngoài khoảng xác định.

Cú pháp NOT BETWEEN như sau:

SELECT column_name 
FROM table_name 
WHERE column_name NOT BETWEEN value1 AND value2;

Ví dụ: Tìm tất cả các giao dịch bán hàng không nằm trong khoảng tháng 6 đến tháng 11.

Chúng ta có công thức sau:

SELECT * FROM Sales
WHERE sales.Month NOT BETWEEN 6 AND 11

Nhấn chạy công thức, chúng ta có thể thấy toàn bộ các giao dịch không xuất hiện từ tháng 6 đến tháng 11 được hiển thị:

Toán tử điều kiện BETWEEN trong SQL - Định nghĩa, Cách dùng

Kết luận

Trên đây là hướng dẫn sử dụng BETWEEN và NOT BETWEEN trong SQL, cùng một số ví dụ giúp bạn hiểu rõ hơn về cách sử dụng của toán tử này trong thực tế. Sau này khi thực hành nhiều, bạn sẽ có thể biết cách ghép nối nhiều câu lệnh với nhiều keyword lại với nhau hơn. Theo dõi để học thêm nhiều kiến thức bổ ích về truy vấn SQL nhé. Chúc bạn thành công!

Khóa học giúp bạn làm chủ ngôn ngữ truy vấn dữ liệu phổ biến SQL từ cơ bản đến nâng cao. Từ đó có thể tự tin xây dựng, truy vấn, và tối ưu hóa các cơ sở dữ liệu phức tạp, hỗ trợ phân tích, làm báo cáo và ra quyết định kinh doanh một cách hiệu quả.

Đăng ký học thử để trải nghiệm ngay hôm nay!

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông