Mệnh đề Where trong SQL

Mệnh đề WHERE trong SQL được sử dụng để xác định một điều kiện trong khi lấy dữ liệu từ bảng đơn hoặc nhiều bảng kết hợp.

Nếu điều kiện đã cho được thỏa mãn, thì nó chỉ trả về các giá trị cụ thể từ bảng đó. Bạn sẽ sử dụng mệnh đề WHERE để lọc các bản ghi và chỉ lấy các bản ghi cần thiết.

Mệnh đề WHERE không chỉ được sử dụng trong lệnh SELECT, mà nó còn được sử dụng trong các lệnh UPDATE, DELETE, …, sẽ được trình bày trong các chương tiếp theo.

Cú pháp

Cú pháp cơ bản của lệnh SELECT với mệnh đề WHERE trong SQL như sau:

SELECT cot1, cot2, cotN 
FROM ten_bang
WHERE [dieu_kien]

Bạn có thể xác định một điều kiện bởi sử dụng các toán tử so sánh hoặc toán tử logic như >, <, =, LIKE, NOT, .... Ví dụ sau sẽ giúp bạn hiểu rõ khái niệm này.

Ví dụ

Bảng SINHVIEN có các bản ghi sau:

+----+---------+-----+-----------+--------+
| ID |  TEN    | TUOI|  KHOAHOC  | HOCPHI |
+----+---------+-----+-----------+---------+
|  1 | Hoang   |  21 | CNTT      | 4       |
|  2 | Viet    |  19 | DTVT      | 3     |
|  3 | Thanh   |  18 | KTDN      |  4      |
|  4 | Nhan    |  19 | CK        |   4.5   |
|  5 | Huong   |  20 | TCNH      |   5     |
+----+---------+-----+-----------+---------+

Ví dụ sau sẽ lấy các trường ID, TEN, HOCPHI từ bảng này với điều kiện là HOCPHI lớn hơn 4:

SQL> SELECT ID, TEN, HOCPHI 
FROM SINHVIEN
WHERE HOCPHI > 2000;

Ví dụ trên sẽ cho kết quả:

+----+----------+----------+
| ID | TEN     | HOCPHI   |
+----+----------+----------+
|  4 | Nhan    |  4.5   |
|  5 | Huong   |   5     |
+----+----------+----------+

Ví dụ sau sẽ lấy các trường ID, TEN, HOCPHI của một sinh viên có tên Nhan. Ở đây, điều quan trọng cần ghi nhớ là tất cả các chuỗi nên ở trong các dấu trích dẫn đơn (''), trong khi các giá trị số không cần bất kỳ trích dẫn nào, như sau:

SQL> SELECT ID, TEN, HOCPHI 
FROM SINHVIEN
WHERE TEN = 'Nhan';

Ví dụ trên sẽ cho kết quả:

+----+----------+----------+
| ID | TEN     | HOCPHI   |
+----+----------+----------+
|  4 | Nhan    |  4.5   |
+----+----------+----------+

Bình luận