Toán tử liên hợp AND và OR trong SQL




Các toán tử ANDOR trong SQL được sử dụng để kết hợp nhiều điều kiện để thu hẹp phạm vi dữ liệu trong một lệnh SQL. Hai loại toán tử này được gọi là toán tử liên hợp.

Các toán tử này cung cấp một phương tiện để tạo nhiều sự so sánh với các toán tử khác nhau trong cùng một lệnh SQL.

Toán tử AND trong SQL

Toán tử AND trong SQL cho phép tồn tại nhiều điều kiện trong mệnh đề WHERE của một lệnh SQL.

Cú pháp

Cú pháp cơ bản của toán tử AND với mệnh đề WHERE như sau:

SELECT cot1, cot2, cotN 
FROM ten_bang
WHERE [dieu_kien_1] AND [dieu_kien_2]...AND [dieu_kien_N];

Bạn có thể kết hợp N điều kiện bởi sử dụng toán tử AND. Để một hành động, chẳng hạn như một truy vấn, được thực hiện bởi lệnh SQL, thì tất cả điều kiện riêng rẽ trong AND phải là TRUE.

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 TUOI nhỏ hơn 20.

SQL> SELECT ID, TEN, HOCPHI 
FROM SINHVIEN
WHERE HOCPHI > 2000 AND TUOI < 25;

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

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

Toán tử OR trong SQL

Toán tử OR trong SQL được sử dụng để kết hợp nhiều điều kiện trong mệnh đề WHERE của một lệnh SQL.

Cú pháp

Cú pháp của toán tử OR với mệnh đề WHERE như sau:

SELECT cot1, cot2, cotN 
FROM ten_bang
WHERE [dieu_kien_1] OR [dieu_kien_2]...OR [dieu_kien_N]

Bạn có thể kết hợp N điều kiện bởi sử dụng toán tử OR. Để một hành động, chẳng hạn như một truy vấn, được thực hiện bởi lệnh SQL, thì CHỈ MỘT trong tất cả điều kiện riêng rẽ trong OR phải là TRUE.

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 HOẶC TUOI nhỏ hơn 20.

SQL> SELECT ID, TEN, HOCPHI 
FROM SINHVIEN
WHERE HOCPHI > 2000 OR TUOI < 25;

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

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