Mệnh đề WHERE được sử dụng để lọc dữ liệu dựa trên các điều kiện trong câu lệnh SELECT. Nó cho phép bạn chỉ truy xuất các hàng dữ liệu thỏa mãn các điều kiện được chỉ định.
Cấu trúc cơ bản:
SELECT column_list FROM table_name WHERE condition;
Giải thích:
- WHERE: Từ khóa cho biết bạn muốn lọc dữ liệu dựa trên điều kiện.
- condition: Biểu thức Boolean (True/False) xác định các hàng dữ liệu nào sẽ được truy xuất.
Ví dụ:
--Lấy tất cả khách hàng từ Hà Nội: SELECT * FROM customers WHERE city = 'Hanoi'; --Lấy 10 sản phẩm có giá cao nhất: SELECT * FROM products ORDER BY price DESC LIMIT 10;
Toán tử so sánh:
Mệnh đề WHERE sử dụng các toán tử so sánh để so sánh giá trị của các cột với giá trị được chỉ định.
Bảng các toán tử so sánh:
Toán tử | Ý nghĩa |
= | Bằng |
<> | Khác |
< | Nhỏ hơn |
<= | Nhỏ hơn hoặc bằng |
> | Lớn hơn |
>= | Lớn hơn hoặc bằng |
Ví dụ:
--Lấy tất cả khách hàng có tuổi từ 18 đến 30: SELECT * FROM customers WHERE age BETWEEN 18 AND 30; --Lấy tất cả sản phẩm có giá lớn hơn 100.000 đồng: SELECT * FROM products WHERE price > 100000;
Hàm so sánh:
Mệnh đề WHERE cũng hỗ trợ các hàm so sánh để kiểm tra các giá trị cụ thể.
Bảng các hàm so sánh:
Hàm | Ý nghĩa |
IS NULL | Kiểm tra xem giá trị có null hay không |
IS NOT NULL | Kiểm tra xem giá trị có null hay không |
LIKE | Kiểm tra xem giá trị có khớp với mẫu được chỉ định hay không |
Ví dụ:
--Lấy tất cả khách hàng có email null: SELECT * FROM customers WHERE email IS NULL; --Lấy tất cả sản phẩm có tên bắt đầu bằng "iPhone": SELECT * FROM products WHERE name LIKE 'iPhone%';
Kết hợp các điều kiện:
Bạn có thể sử dụng các toán tử logic để kết hợp các điều kiện trong mệnh đề WHERE.
Bảng các toán tử logic:
Toán tử | Ý nghĩa |
AND | Cả hai điều kiện đều phải thỏa mãn |
OR | Ít nhất một điều kiện phải thỏa mãn |
NOT | Điều kiện ngược lại phải thỏa mãn |
Ví dụ:
--Lấy tất cả khách hàng là nam và sống ở Hà Nội: SELECT * FROM customers WHERE gender = 'male' AND city = 'Hanoi'; --Lấy tất cả sản phẩm có giá lớn hơn 100.000 đồng hoặc có tên bắt đầu bằng "Samsung": SELECT * FROM products WHERE price > 100000 OR name LIKE 'Samsung%';
Mệnh đề WHERE là một công cụ mạnh mẽ để lọc dữ liệu trong SQL
Bạn có thể sử dụng nó để truy xuất chính xác dữ liệu mà bạn cần.