Mệnh đề WHERE trong SQL

WHERE trong SQL được sử dụng như thế nào? Dưới đây là mọi điều bạn cần biết về câu lệnh WHERE trong SQL.

Nếu đang học lập trình, ắt hẳn SQL không còn quá xa lạ với bạn. Đây là ngôn ngữ truy vấn có cấu trúc, giúp người dùng xử lý thông tin đơn giản và dễ dàng hơn. Chính vì thế, bên cạnh học ngôn ngữ lập trình, bất cứ ai muốn phát triển trong ngành này đều cần biết SQL.

Học SQL không khó. Quantrimang.com sẽ cung cấp cho bạn những bài học cơ bản nhất. Ở bài viết này, chúng ta hãy cùng nhau tìm hiểu về WHERE trong SQL nhé!

Mệnh đề WHERE trong SQL được sử dụng để chỉ định điều kiện khi lấy dữ liệu từ một bảng hoặc nối nhiều bảng với nhau. Nếu điều kiện được thỏa mãn thì nó chỉ trả về những giá trị cụ thể trong bảng.

Mệnh đề WHERE cũng được sử dụng để lọc các bản ghi và chỉ lấy những bản ghi phù hợp với yêu cầu hoặc thực sự cần thiết.

WHERE không đi một mình mà thường được sử dụng kết hợp với lệnh SELECT, lệnh UPDATE, lệnh DELETE và rất nhiều lệnh khác. Bạn sẽ được nhìn thấy ví dụ về sự kết hợp này trong những bài tiếp theo.

Cú pháp mệnh đề WHERE

Như đã nói ở trên, mệnh đề WHERE được dùng với các lệnh liên quan đến việc xử lý dữ liệu, vì vậy ta sẽ xem xét mệnh đề này trong lệnh SELECT, một sự kết hợp thường xuyên được nhìn thấy nhất trong SQL.

SELECT cot1, cot2,.... cotN 
FROM TEN_BANG
WHERE [DIEU_KIEN]

Bạn có thể chỉ định điều kiện bằng cách sử dụng các toán tử logic hoặc so sánh như >, <, LIKE, NOT,...

Các toán tử trong Mệnh đề WHERE

Các toán tử sau có thể được sử dụng trong mệnh đề WHERE:

Toán tửMô tả
=Bằng
>Lớn hơn
<Nhỏ hơn
>=Lớn hơn hoặc bằng
<=Nhỏ hơn hoặc bằng
<>Không công bằng. Lưu ý: Trong một số phiên bản SQL, toán tử này có thể được viết là !=
BETWEENGiữa một phạm vi nhất định
LIKETìm kiếm dựa trên mẫu tương tự
IN
Để chỉ định nhiều giá trị có thể có cho một cột

Ví dụ về mệnh đề WHERE

Ta tiếp tục sử dụng lại bảng NHANVIEN đã dùng trong các ví dụ trước:

+----+----------+-----+-----------+---------+
| ID |   TEN    | TUOI|  DIACHI   |   LUONG | 
+----+----------+-----+-----------+---------+ 
| 1  | Thanh    |  24 | Haiphong  | 2000.00 | 
| 2  | Loan     |  26 | Hanoi     | 1500.00 | 
| 3  | Nga      |  24 | Hanam     | 2000.00 | 
| 4  | Mạnh     |  29 | Hue       | 6500.00 | 
| 5  | Huy      |  28 | Hatinh    | 8500.00 | 
| 6  | Cao      |  23 | HCM       | 4500.00 | 
| 7  | Lam      |  29 | Hanoi     | 15000.00| 
+----+----------+-----+-----------+---------+

Ví dụ 1:

Giờ ta sẽ dùng WHERE kết hợp với SELECT để lọc ra những nhân viên có lương cao hơn 4500:

SQL> SELECT ID, TEN, LUONG 
FROM NHANVIEN
WHERE LUONG > 4500;

Không có lỗi nào xảy ra thì kết quả trả về sẽ là:

+----+----------+-----+-----------+---------+
| ID |   TEN    | TUOI|  DIACHI   |   LUONG | 
+----+----------+-----+-----------+---------+  
| 4  | Mạnh     |  29 | Hue       | 6500.00 | 
| 5  | Huy      |  28 | Hatinh    | 8500.00 |  
| 7  | Lam      |  29 | Hanoi     | 15000.00| 
+----+----------+-----+-----------+---------+

Ví dụ 2:

Bây giờ ta sẽ chỉ lấy ID, TEN, LUONG từ bảng NHANVIEN cho nhân viên có tên là Mạnh. Có một lưu ý cho bạn trong phần này là tất cả các chuỗi cần được đặt trong cặp dấu ' ', nhưng giá trị là số thì lại không cần cho vào dấu nháy đơn, giống như ví dụ 1.

SQL> SELECT ID, TEN, LUONG 
FROM NHANVIEN
WHERE TEN = 'Mạnh';

Kết quả trả về sẽ là:

+----+----------+-----+-----------+---------+
| ID |   TEN    | TUOI|  DIACHI   |   LUONG | 
+----+----------+-----+-----------+---------+  
| 4  | Mạnh     |  29 | Hue       | 6500.00 | 
+----+----------+-----+-----------+---------+

Mệnh đề WHERE với toán tử AND, OR

Bạn có thể dùng toán tử AND và OR với nhau trong SQL để kết hợp nhiều điều kiện trong một mệnh đề WHERE để lọc các hàng đáp ứng tiêu chí cụ thể. Toán tử AND sẽ đảm bảo chỉ lọc các hàng được chọn, đáp ứng tất cả điều kiện. Toán tử OR sẽ lọc bản ghi thỏa mãn một điều kiện cụ thể. Tuy nhiên, điều này chỉ được dùng khi một điều kiện không đủ để lọc tất cả các hàng cần thiết.

Cú pháp sau đang dùng toán tử AND và OR trong điều kiện WHERE của SQL.

WHERE (condition1 OR condition2) AND condition3;

Ví dụ:

Truy vấn sau cần truy xuất toàn bộ hàng từ bảng CUSTOMER dựa trên một số điều kiện. Các dấu ngoặc đơn kiểm soát thứ tự đánh giá để toán tử OR được áp dụng đầu tiên, theo sau là toán tử AND:

SELECT * FROM CUSTOMERS
WHERE (AGE = 25 OR salary < 4500) AND (name = 'Komal' OR name = 'Kaushik');

Kết quả:

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  3 | kaushik  |  23 | Kota      |  2000.00 |
+----+----------+-----+-----------+----------+   

Mệnh đề WHERE với toán tử LIKE

Mệnh đề WHERE với toán tử LIKE cho phép bạn lọc các hàng khớp với một mẫu cụ thể. Mẫu này được thể hiện bằng các ký tự đại diện (chẳng hạn như %, _, []). Sau đây là cú pháp của nó:

WHERE column_name LIKE pattern;

Trong đó, column_name là cột mà bạn muốn so sánh với mẫu, còn pattern là một chuỗi có thể chứa các ký tự đại diện (như %, _, []).

Ví dụ:

Sau đây là truy vấn mà sẽ hiển thị tất cả bản ghi tại nơi có tên bắt đầu bằng K và dài ít nhất 4 chữ cái:

SELECT * FROM CUSTOMERS WHERE NAME LIKE 'K___%';

Kết quả:

IDNAMEAGEADDRESSSALARY
2Khilan25Delhi1500.00
3Kaushik23Kota2000.00
6Komal22Hyderabad4500.00

Vậy là bạn đã nắm được cách sử dụng mệnh đề WHERE và cách kết hợp SELECT với WHERE để chỉ lấy những dữ liệu phù hợp với điều kiện nhất định.

Thứ Bảy, 11/11/2023 10:32
55 👨 20.737
0 Bình luận
Sắp xếp theo
    ❖ Học SQL