Như chúng ta đã biết, câu lệnh SELECT trả về tất cả các kết quả từ bảng cơ sở dữ liệu được truy vấn. Tuy nhiên đôi lúc chúng ta muốn hạn chế kết quả truy vấn trong một điều kiện cụ thể. Mệnh đề WHERE của SQL có ích trong các tình huống như vậy. Cùng tìm hiểu cách thực hiện như nào nhé.
Cú pháp cơ bản của mệnh đề WHERE khi được sử dụng trong câu lệnh SELECT như sau:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
Trong đó:
Mệnh đề WHERE khi được sử dụng cùng với toán tử logic AND chỉ được thực thi nếu tất cả các tiêu chí lọc chỉ định được đáp ứng. Cú pháp như sau:
SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND ...;
Ví dụ: Bạn hãy tìm tất cả các nhân viên có mức lương lớn hơn 50,000 và thuộc bộ phận 'IT'. Ta có câu lệnh sau:
SELECT employee_name, salary, department
FROM employees
WHERE salary > 50000 AND department = 'IT';
Cho chạy công thức trên, chúng ta sẽ có được kết quả sẽ chỉ bao gồm những nhân viên có mức lương lớn hơn 50,000 và đồng thời thuộc bộ phận 'IT'.
Mệnh đề WHERE khi kết hợp với toán tử logic OR chỉ được thực thi khi có bất kì hoặc toàn bộ tiêu chí lọc chỉ định được đáp ứng.
Ví dụ: Truy vấn tất cả các nhân viên thuộc bộ phận 'IT' hoặc 'HR':
SELECT employee_name, department
FROM employees
WHERE department = 'IT' OR department = 'HR';
Kết quả sẽ bao gồm các nhân viên thuộc bộ phận IT hoặc bộ phận HR.
Mệnh đề WHERE khi sử dụng kết hợp với từ khóa IN chỉ ảnh hưởng đến các hàng có giá trị khớp với danh sách các giá trị được cung cấp trong từ khóa IN. IN giúp giảm số lượng của mệnh đề OR mà bạn phải sử dụng thay vào đó.
Ví dụ: Truy vấn tất cả các nhân viên thuộc bộ phận 'IT', 'HR', hoặc 'Sales':
SELECT employee_name, department
FROM employees
WHERE department IN ('IT', 'HR', 'Sales');
Kết quả sẽ bao gồm các nhân viên thuộc một trong ba bộ phận: IT, HR, hoặc Sales.
Mệnh đề WHERE khi sử dụng kết hợp với từ khóa NOT IN thì KHÔNG ảnh hưởng đến các hàng có giá trị khớp với danh sách các giá trị được cung cấp trong từ khóa NOT IN.
Ví dụ: Truy vấn tất cả các nhân viên không thuộc bộ phận 'IT', 'HR', hoặc 'Sales':
SELECT employee_name, department
FROM employees
WHERE department NOT IN ('IT', 'HR', 'Sales');
Chạy công thức, chúng ta sẽ thu được kết quả sẽ bao gồm các nhân viên thuộc các bộ phận khác ngoài IT, HR, và Sales
Có thể sử dụng các toán tử so sánh nhỏ hơn (<), lớn hơn (>), bằng (=), không bằng (<>) với mệnh đề WHERE.
Bạn hãy thực hiện yêu cầu lọc các sản phẩm có giá nhỏ hơn hoặc bằng 200. Chúng ta sử dụng công thức sau:
SELECT product_name, price
FROM products
WHERE price <= 200;
Khi chạy công thức chúng ta sẽ thu được các kết quả chứa sản phẩm có giá nhỏ hơn hoặc bằng 200.
Tương tự, bạn lọc các nhân viên có mức lương lớn hơn 60,000 bằng công thức sau:
SELECT employee_name, salary
FROM employees
WHERE salary > 60000;
Công thức trên sẽ truy vấn ra kết quả các nhân viên có mức lương lớn hơn 60,000.
Ví dụ: Để lọc các nhân viên có mức lương không bằng 50,000, ta dùng công thức sau:
SELECT employee_name, salary
FROM employees
WHERE salary <> 50000;
Kết quả sẽ bao gồm các nhân viên có mức lương không bằng 50,000.
Trên đây là mệnh đề WHERE trong SQL được sử dụng để hạn chế số lượng hàng bị ảnh hưởng bởi câu lệnh SELECT, UPDATE hoặc DELETE. Hy vọng nó sẽ giúp ích cho công việc của bạn.
Ngoài ra bạn có thể truy cập ngay https://gitiho.com/ để tìm hiểu thêm nhiều các khóa học hay về tin học văn phòng: Excel, Power Point, lập trình VBA, lập trình C#, SQL, thiết kế đồ họa… Có rất nhiều ưu đãi hấp dẫn đang chờ bạn.
Các bạn có thể tham khảo thêm các bài viết khác về cách sử dụng MySQL:
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!