Chọn dữ liệu trong phạm vi trong SQL

Giới thiệu mệnh đề WHERE và điều kiện GIỮA

Ngôn ngữ truy vấn có cấu trúc (SQL) cung cấp cho người dùng cơ sở dữ liệu khả năng tạo các truy vấn tùy chỉnh để trích xuất thông tin từ cơ sở dữ liệu. Trong một bài viết trước, chúng tôi đã khám phá việc trích xuất thông tin từ một cơ sở dữ liệu bằng cách sử dụng các truy vấn SELECT của SQL . Hãy mở rộng khi thảo luận và khám phá cách bạn có thể thực hiện các truy vấn nâng cao để truy xuất dữ liệu khớp với các điều kiện cụ thể.

Chúng ta hãy xem xét một ví dụ dựa trên cơ sở dữ liệu Northwind thường được sử dụng, thường xuyên gửi các sản phẩm cơ sở dữ liệu như một hướng dẫn.

Dưới đây là một đoạn trích từ bảng Product của cơ sở dữ liệu:

Bảng sản phẩm
ID sản phẩm Tên sản phẩm ID nhà cung cấp Số lượng mỗi đơn vị UnitPrice Đơn vị cổ phiếu
1 Chai 1 10 hộp x 20 túi 18,00 39
2 Chang 1 24 - 12 oz chai 19,00 17
3 Xi-rô Aniseed 1 12 - 550 ml chai 10.00 13
4 Gia vị Cajun của đầu bếp Anton 2 Bình 48 - 6 oz 22,00 53
5 Hỗn hợp Gumbo của Đầu bếp Anton 2 36 hộp 21,35 0
6 Sự lây lan Boysenberry của bà 3 12 - 8 oz lọ 25,00 120
7 Lê khô hữu cơ của Bác Bob 3 12 - 1 lb pkg. 30,00 15

Điều kiện biên giới đơn giản

Những hạn chế đầu tiên chúng tôi sẽ đặt vào truy vấn của chúng tôi liên quan đến các điều kiện biên đơn giản. Chúng ta có thể chỉ định chúng trong mệnh đề WHERE của truy vấn SELECT, sử dụng các câu lệnh điều kiện đơn giản được xây dựng với các toán tử chuẩn, chẳng hạn như <,>,> = và <=.


Trước tiên, hãy thử một truy vấn đơn giản cho phép chúng ta trích xuất một danh sách tất cả các sản phẩm trong cơ sở dữ liệu có một UnitPrice có giá trị lớn hơn 20.00:

SELECT ProductName, UnitPrice FROM products WHERE UnitPrice> 20,00

Điều này tạo ra một danh sách bốn sản phẩm, như hình dưới đây:

ProductName UnitPrice ------- -------- Đầu bếp Gumbo Mix 21,35 Đầu bếp của Anton Anton Cajun Seasoning 22.00 Boysenberry của bà Lan 25,00 Lê khô hữu cơ của Bác Bob 30.00

Chúng ta cũng có thể sử dụng mệnh đề WHERE với các giá trị chuỗi. Về cơ bản, số này tương đương với các ký tự, với A đại diện cho giá trị 1 và Z đại diện cho giá trị 26. Ví dụ, chúng ta có thể hiển thị tất cả các sản phẩm có tên bắt đầu bằng U, V, W, X, Y hoặc Z với truy vấn sau:

SELECT ProductName TỪ sản phẩm WHERE ProductName> = 'T'

Mà tạo ra kết quả:

ProductName ------- Lê khô hữu cơ của Bác Bob

Hiển thị Phạm vi sử dụng Ranh giới

Mệnh đề WHERE cũng cho phép chúng ta thực hiện một điều kiện phạm vi trên một giá trị bằng cách sử dụng nhiều điều kiện. Ví dụ: nếu chúng tôi muốn truy vấn của chúng tôi ở trên và giới hạn kết quả cho các sản phẩm có giá từ 15,00 đến 20,00, chúng tôi có thể sử dụng truy vấn sau:

SELECT ProductName, UnitPrice FROM products WHERE UnitPrice> 15.00 VÀ UnitPrice <20.00

Điều này tạo ra kết quả được hiển thị bên dưới:

Tên sản phẩm UnitPrice ------- -------- Chai 18.00 Chang 19.00

Hiển thị phạm vi với GIỮA

SQL cũng cung cấp cú pháp BETWEEN của shortcut để giảm số lượng các điều kiện mà chúng ta cần bao gồm và làm cho truy vấn dễ đọc hơn. Ví dụ: thay vì sử dụng hai điều kiện WHERE ở trên, chúng tôi có thể thể hiện cùng một truy vấn như:

SELECT ProductName, UnitPrice FROM products WHERE UnitPrice GIỮA 15,00 VÀ 20,00

Như với các điều kiện điều kiện khác của chúng tôi, BETWEEN cũng làm việc với các giá trị chuỗi. Nếu chúng tôi muốn tạo danh sách tất cả các quốc gia bắt đầu bằng V, W hoặc X, chúng tôi có thể sử dụng truy vấn:

SELECT Tên sản phẩm TỪ sản phẩm WHERE Tên sản phẩm GIỮA "A" và "D"

Mà tạo ra kết quả:

Tên sản phẩm ------- Aniseed Syrup Chai Chang Đầu bếp Anton's Gumbo Mix Đầu bếp Anton's Cajun Seasoning

Mệnh đề WHERE là một phần mạnh mẽ của ngôn ngữ SQL cho phép bạn giới hạn kết quả cho các giá trị nằm trong phạm vi được chỉ định. Nó rất thường được sử dụng để giúp thể hiện logic kinh doanh và phải là một phần của bộ công cụ cơ sở dữ liệu chuyên nghiệp.

Nó thường hữu ích để kết hợp các mệnh đề chung vào một thủ tục được lưu trữ để làm cho nó dễ tiếp cận với những người không có kiến ​​thức về SQL.