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 | +----+----------+----------+