06/04/2021, 14:50

Mệnh đề WHERE trong SQL - Ngôn ngữ truy vấn T-SQL

Ở 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 ...

Ở 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:

Cú pháp
SELECT columns_list
FROM table_name 
WHERE conditions

Ví dụ
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ư: 

  • > lớn hơn
  • < bé hơn
  • = bằng
  • >= lớn hơn hoặc bằng
  • <= bé hơn hoặc bằng
  • LIKE so sánh chuỗi trùng khớp
  • NOT 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.

Cú pháp
SELECT columns_name
FROM table_name
WHERE condition1 [AND][OR] condition2 

Ví dụ: Lấy danh sách khách hàng có salary > 4500ID > 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.

Trịnh Tiến Mạnh

27 chủ đề

6824 bài viết

Cùng chủ đề
0