Toán tử AND, OR và NOT trong SQL

Toán tử AND và OR được sử dụng để kết hợp nhiều điều kiện nhằm thu hẹp dữ liệu trong câu lệnh SQL. Hai toán tử này được gọi là toán tử liên hợp trong SQL. AND và OR cho phép tạo nhiều phép so sánh cùng với các toán tử khác trong một lệnh SQL.

Trong bài SQL này, chúng ta sẽ đi tìm hiểu toán tử AND/OR và NOT - cách sử dụng chúng, cũng như các ví dụ cụ thể.

Toán tử ANDOR được sử dụng để lọc các bản ghi dựa trên nhiều hơn một điều kiện:

  • Toán tử AND hiển thị một bản ghi nếu tất cả các điều kiện được phân tách bằng AND đều TRUE (Đúng).
  • Toán tử OR hiển thị một bản ghi nếu bất kỳ điều kiện nào được phân tách bởi OR là TRUE (Đúng).

Toán tử NOT hiển thị một bản ghi nếu (các) điều kiện KHÔNG ĐÚNG.

Toán tử AND trong SQL

AND cho phép sử dụng nhiều điều kiện trong mệnh đề WHERE của câu lệnh SQL. Như ở bài trước bạn đã thấy, chúng ta chỉ có thể sử dụng một điều kiện trong WHERE, khi kết hợp với SELECT. Nhưng nếu có AND bạn có thể thêm vào các điều kiện khác để đảm bảo lấy được dữ liệu chuẩn xác hơn. Dữ liệu lấy ra phải thỏa mãn cùng lúc tất cả các điều kiện có trong mệnh đề WHERE.

Cú pháp của AND trong WHERE:

SELECT cot1, cot2, cotN 
FROM TEN_BANG
WHERE [DIEU_KIEN1] AND [DIEU_KIEN2]...AND [DIEU_KIENN];

Ví dụ về AND:

Trong ví dụ này ta sẽ lấy thông tin nhân viên từ bảng NHANVIEN, lọc những nhân viên có lương cao hơn 2000 và tuổi ít hơn 29.

Đây là bảng NHANVIEN:

Ví dụ AND và OR trong SQL

Câu lệnh sẽ như sau:

SQL> SELECT *
FROM NHANVIEN
WHERE LUONG > 2000 AND TUOI < 29;

Kết quả trả về sẽ như thế này:

Kết quả sau khi dùng AND

Toán tử OR trong SQL

Toán tử OR được sử dụng để kết hợp nhiều điều kiện trong mệnh đề WHERE của lệnh SQL. Khi sử dụng OR trong WHERE kết hợp với SELECT thì dữ liệu lấy ra chỉ cần thỏa mãn một trong các điều kiện được liệt kê. Bạn có nhận thấy sự khác biệt giữa OR và AND không?

Cú pháp của OR trong WHERE:

SELECT cot1, cot2, cotN 
FROM TEN_BANG
WHERE [DIEU_KIEN1] OR [DIEU_KIEN2]...OR [DIEU_KIENN]

Bạn có thể kết hợp N điều kiện nhờ sử dụng OR, và chỉ cần một trong số N điều kiện này đúng thì dữ liệu sẽ được lấy ra.

Ví dụ về OR:

Ta sẽ lấy thông tin nhân viên từ bảng NHANVIEN dưới đây, với điều kiện là LUONG lớn hơn 6500 và tuổi ít hơn 24.

Câu lệnh sẽ là:

SQL> SELECT * 
FROM NHANVIEN
WHERE LUONG > 6500 OR age < 24;

Khi thực hiện lệnh trên, bất ký bản ghi nào thỏa mãn điều kiện lương cao hơn 6500 hoặc tuổi nhỏ hơn 24 đều sẽ được trả về trong bảng kết quả, giống như dưới đây:

Kết quả khi thực hiện lệnh OR

Toán tử NOT trong SQL

Toán tử NOT được sử dụng để phủ định các điều kiện đứng đằng sau nó trong mệnh đề WHERE. Khi sử dụng NOT trong lệnh SELECT kết hợp mệnh đề WHERE, bạn sẽ lấy được dữ các dữ liệu KHÔNG thỏa mãn điều kiện.

Cú pháp của NOT trong WHERE:

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

Bạn có thể kết hợp toán tử NOT cùng AND/OR trong những trường hợp cần thiết.

Ví dụ về NOT:

Ta sẽ lấy thông tin nhân viên từ bảng NHANVIEN dưới đây, với điều kiện là LUONG không nhỏ hơn 4000 và tuổi lớn hơn hoặc bằng 24.

Câu lệnh sẽ là:

SQL> SELECT * 
FROM NHANVIEN
WHERE NOT LUONG < 4000 AND age >= 24;

Sau khi thực hiện câu lệnh, bất kì người nào có lương cao hơn 4000 và tuổi từ 24 trở lên sẽ được lấy ra, kết quả như sau:

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

Đến đây, bạn đã tự tin để sử dụng toán tử AND, OR và NOT trong mệnh đề WHERE chưa? Cũng khá đơn giản thôi phải không nào? Trong bài tới, chúng ta sẽ tìm hiểu về một lệnh rất quan trọng trong SQL, đó là lệnh UPDATE.

Thứ Tư, 27/07/2022 10:31
44 👨 10.956
0 Bình luận
Sắp xếp theo