Mệnh đề SQL WHERE giới hạn số bản ghi được trả về hoặc bị ảnh hưởng bởi lệnh. Nó dùng với mệnh đề SELECT, UPDATE và DELETE. Bạn có thể dùng từ khóa AND để chỉ định nhiều điều kiện bản ghi phải đáp ứng.
Bạn có thể muốn lọc kết quả truy vấn bằng điều kiện cụ thể. Ví dụ: lấy danh sách nhân viên là quản lý bán hàng. Hoặc tìm ai bắt đầu làm việc sau ngày cụ thể.
Bạn có thể dùng mệnh đề WHERE để lọc bản ghi cụ thể khi chạy lệnh SQL. Câu lệnh này hoạt động kết hợp với SELECT, UPDATE, DELETE. Trong hướng dẫn này, chúng ta sẽ trình bày cách dùng mệnh đề WHERE lọc bản ghi trong SQL.
Mệnh đề SQL WHERE
Mệnh đề SQL WHERE lọc bản ghi đáp ứng điều kiện cụ thể hoặc tập điều kiện. Mệnh đề WHERE đứng sau mệnh đề FROM trong câu lệnh SQL.
Cú pháp câu lệnh:
SELECT * FROM bang WHERE cot so_sanh gia_tri;
SELECT * FROM bang: truy vấn SELECT tiêu chuẩn.- Dùng WHERE giới hạn bản ghi truy vấn trả về.
cot: cột cần đáp ứng điều kiện.so_sanhvàgia_tri: phép so sánh và giá trị muốn so sánh.
Các phép so sánh tiềm năng:
WHERE name = 'Jeff'; WHERE age > 15; WHERE salary < 50000;
Bạn có thể chỉ định nhiều điều kiện WHERE dùng từ khóa SQL AND:
SELECT * FROM bang WHERE cot1 so_sanh1 gia_tri1 AND cot2 so_sanh2 gia_tri2;
Hãy đi qua ví dụ WHERE.
Ví dụ SQL WHERE: SELECT
Muốn lấy danh sách nhân viên là Senior Sales Associate. Dùng truy vấn:
SELECT name, title FROM employees WHERE title = 'Senior Sales Associate';
Kết quả trả về các hàng đáp ứng tiêu chí:
| name | title |
|---|---|
| Geoff | Senior Sales Associate |
| Adam | Senior Sales Associate |
(2 hàng) — Tất cả nhân viên trên có chức danh "Senior Sales Associate".
Ví dụ khác: muốn danh sách nhân viên thu nhập > $35,000/năm VÀ tên không phải Adam. Dùng:
SELECT name, salary FROM employees WHERE salary > 35000 AND name <> 'Adam';
Kết quả:
| name | salary |
|---|---|
| Geoff | 38000 |
| Emma | 50000 |
| Jonah | 50000 |
(3 hàng) — Adam không có trong kết quả dù lương > $35,000 vì bị loại trừ bằng toán tử <>.
Mệnh đề WHERE: UPDATE và DELETE
Mệnh đề SQL WHERE hoạt động với UPDATE và DELETE.
Ví dụ: muốn cập nhật chi nhánh nhân viên làm việc nếu tái cấu trúc công ty. Dùng UPDATE.
Muốn đổi chi nhánh Luke từ Boston thành Cambridge (văn phòng mới). Dùng UPDATE:
UPDATE employees SET branch = 'Cambridge' WHERE name = 'Luke';
Truy vấn chi nhánh Luke:
| name | branch |
|---|---|
| Luke | Cambridge |
(1 hàng)
Có thể dùng WHERE với SQL DELETE.
Giả sử muốn xóa bản ghi nhân viên làm việc tại chi nhánh Albany (đã đóng). Dùng lệnh:
DELETE FROM employees WHERE branch = 'Albany';
Khi lấy danh sách nhân viên, số hàng trả về là 6 thay vì 8:
| name | branch |
|---|---|
| Mike | Stamford |
| Hannah | San Francisco |
| Geoff | San Francisco |
| Alexis | Boston |
| Adam | Sacramento |
| Luke | Cambridge |
(6 hàng)
Toán tử SQL
Mệnh đề SQL WHERE dùng toán tử logic để lọc bản ghi. Ví dụ đầu dùng toán tử "bằng" kiểm tra tên Senior Sales Associate.
Có nhiều toán tử logic dùng để lọc bản ghi khi dùng mệnh đề. Danh sách:
| Toán tử | Mô tả | Ví dụ |
|---|---|---|
| = | Bằng | WHERE name = 'Jake' |
| > | Lớn hơn | age > 20 |
| < | Nhỏ hơn | age < 20 |
| >= | Lớn hơn hoặc bằng | salary >= 50000 |
| <= | Nhỏ hơn hoặc bằng | salary <= 40000 |
| LIKE | Khớp mẫu | name LIKE 'Jo*' |
| IN | Kiểm tra giá trị khớp bất kỳ trong danh sách | title IN ('Sales Associate', 'Director of Sales') |
| BETWEEN | Kiểm tra giá trị trong phạm vi | employee_month_awards BETWEEN 1 AND 5 |
Kết luận
Mệnh đề SQL WHERE lọc bản ghi bị ảnh hưởng bởi lệnh. Bạn có thể dùng WHERE với SELECT, UPDATE, DELETE. Có thể chỉ định nhiều điều kiện WHERE dùng AND, nhưng chỉ cần dùng từ khóa WHERE một lần.
Trong hướng dẫn này, chúng ta bao gồm truy vấn, mệnh đề SQL WHERE và cách dùng trong UPDATE/DELETE. Cũng thảo luận toán tử điều kiện dùng với mệnh đề này.
Bạn quan tâm trở thành lập trình viên SQL chuyên nghiệp? Xem hướng dẫn How to Learn SQL. Hướng dẫn chứa danh sách tài nguyên học tập hàng đầu giúp bạn làm chủ SQL.