Ở bài trước chúng ta đã học cách sử dụng lệnh SELECT để lấy dữ liệu từ bảng, nhưng lệnh đó sẽ lấy tất cả dữ liệu hiện có, vì vậy trong bài này mình giới thiệu thêm một lệnh khác đó là lệnh WHERE dùng để lọc dữ liệu từ kết quả trả về đó.
1. Tìm hiểu Lệnh Where trong T-SQL
Lệnh WHERE được dùng để kết hợp trong lệnh SELECT và vị trí được đặt sau lệnh FROM để lọc dữ liệu, cú pháp như sau:
SELECT columns_list FROM table_name WHERE conditions
SELECT * FROM customers WHERE age = 32
Trong ví dụ này thì age = 32
chính là condition, ý nghĩa của nó là lọc qua tất cả dữ liệu trong bảng và chọn dòng nào có age = 32.
Bạn có thể sử dụng các toán tử so sánh như:
Bài viết này được đăng tại [kiso.vn]
>
lớn hơn<
bé hơn=
bằng>=
lớn hơn hoặc bằng<=
bé hơn hoặc bằngLIKE
so sánh chuỗi trùng khớpNOT
so sánh không giống, thường kết hơp với LIKE, IN, ..
Trong danh sách này có thể có một số toán tử bạn chưa biết đến, tuy nhiên đừng lo lắng quá nhé, mình sẽ giới thiệu ở các bài tiếp theo.
2. Ví dụ với WHERE trong T-SQL
Giả sử ta có bảng dữ liệu như sau (bảng này được dùng cho toàn bộ các phần phía dưới đây):
ID NAME AGE ADDRESS SALARY 1 Ramesh 32 Ahmedabad 2000.00 2 Khilan 25 Delhi 1500.00 3 kaushik 23 Kota 2000.00 4 Chaitali 25 Mumbai 6500.00 5 Hardik 27 Bhopal 8500.00 6 Komal 22 MP 4500.00 7 Muffy 24 Indore 10000.00
Bây giờ mình cần truy vấn lấy các columns ID
, Name
and Salary
của những khách hàng nào có mức lương lớn hơn 3000.
SELECT ID, NAME, SALARY FROM CUSTOMERS WHERE SALARY > 3000;
Kết quả sẽ trả về như sau:
ID NAME SALARY 4 Chaitali 6500.00 5 Hardik 8500.00 6 Komal 4500.00 7 Muffy 10000.00
Một yêu cầu khác như sau, lấy khách hàng có tên là “Hardik“.
SELECT ID, NAME, SALARY FROM CUSTOMERS WHERE NAME = 'Hardik';
Kết quả trả về như sau:
ID NAME SALARY 5 Hardik 8500.00
3. Where với hơn một điều kiện
Nếu bạn muốn truy vấn với nhiều hơn một điều kiện thì sao? Lúc này bạn phải sử dụng đến hai toán tử thông dụng nhất là OR hoặc AND.
- AND sẽ trả về TRUE nếu cả hai vế phải và vế trái đều đúng, ngược lại một trong hai vế sai thì sẽ trả về FALSE
- OR sẽ trả về TRUE nếu ít nhất một trong hai vế phải và trái đúng, và trả về FALSE nếu cả hai vế đều sai.
SELECT columns_name FROM table_name WHERE condition1 [AND][OR] condition2
Ví dụ: Lấy danh sách khách hàng có salary > 4500
và ID > 4
.
SELECT ID, NAME, SALARY FROM CUSTOMERS WHERE SALARY > 4500 AND ID > 4;
Kết quả như sau:
ID NAME AGE ADDRESS SALARY 5 Hardik 27 Bhopal 8500.00 7 Muffy 24 Indore 10000.00
Ví dụ: Lấy danh sách khách hàng có salary > 6000
hoặc age >= 25
.
SELECT ID, NAME, SALARY FROM CUSTOMERS WHERE SALARY < 6000 AND AGE >= 25;
Kết quả như sau:
ID NAME AGE ADDRESS SALARY 2 Khilan 25 Delhi 1500.00 4 Chaitali 25 Mumbai 6500.00 5 Hardik 27 Bhopal 8500.00 7 Muffy 24 Indore 10000.00
Trên là ví dụ về cách sử dụng lệnh WhERE trong SQL, bạn có thể áp dụng nó với hầu hết các hệ quản trị CSDL hiện nay.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Tìm hiểu Lệnh Where trong T-SQL2. Ví dụ...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Tìm hiểu Lệnh Where trong T-SQL2. Ví dụ với WHERE trong T-SQL3. Where với hơn một điều kiện1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Tìm hiểu Lệnh Where trong T-SQL2. Ví dụ với WHERE trong T-SQL3. Where với hơn một điều kiệnV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Tìm hiểu Lệnh Where trong T-SQL2. Ví dụ với WHERE trong T-SQL3. Where với hơn một điều kiệnV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Tìm hiểu Lệnh Where trong T-SQL2. Ví dụ với WHERE trong T-SQL3. Where với hơn một điều kiệnIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình...