Web Cơ Bản

Cách sử dụng các toán tử AND, OR, NOT trong MySQL

- Trong hệ quản trị cơ sở dữ liệu MySQL, các toán tử AND - OR - NOT thường được sử dụng kết hợp với mệnh đề WHERE để cụ thể hóa việc xác định những hàng (bản ghi) mà chúng ta muốn chọn lọc để thực hiện các thao tác dữ liệu (truy xuất, cập nhật, xóa)

- Trong đó, toán tử AND và OR thực hiện việc chọn lọc dữ liệu dựa trên nhiều điều kiện.

  • Toán tử AND chỉ lấy những hàng mà dữ liệu trên hàng đó thỏa hết tất cả các điều kiện được đặt ra.
  • Toán tử OR lấy những hàng mà dữ liệu trên hàng đó thỏa ít nhất một trong số các điều kiện được đặt ra.

- Toán tử NOT lấy những hàng mà dữ liệu trên hàng đó không thỏa điều kiện được đặt ra.

Cú pháp AND

SELECT column1, column2, column3, . . . .
FROM table_name
WHERE condition1 AND condition2 AND condition3 . . . .;

Cú pháp OR

SELECT column1, column2, column3, . . . .
FROM table_name
WHERE condition1 OR condition2 OR condition3 . . . .;

Cú pháp NOT

SELECT column1, column2, column3, . . . .
FROM table_name
WHERE NOT condition;

THAM KHẢO MỘT SỐ VÍ DỤ

- Trong bài học này, tôi sẽ sử dụng cái bảng Customers như bên dưới để làm một số ví dụ minh họa.

CustomerID CustomerName City Total
1 Đặng Trung Hiếu Cần Thơ 735000
2 Bạch Thu Hà Cần Thơ 265000
3 Dương Cung Như Vĩnh Long 350000
4 Nguyễn Thành Nhân Hậu Giang 175000
5 Vũ Văn Thành Đô Bạc Liêu 165000
6 Trương Bá Nhân Cần Thơ 180000
7 Tần Thúc Bảo Sóc Trăng 208000
8 Lê Thị Mỹ Nhân Vĩnh Long 335000
Ví dụ 1:

- Liệt kê những khách hàng sống tại Cần Thơ và tổng số tiền đã thanh toán lớn hơn 200,000

SELECT *
FROM Customers
WHERE (City="Cần Thơ") AND (Total > 200000);

- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới.

CustomerID CustomerName City Total
1 Đặng Trung Hiếu Cần Thơ 735000
2 Bạch Thu Hà Cần Thơ 265000
Ví dụ 2:

- Liệt kê những khách hàng sống tại Vĩnh Long hoặc có tên là Nguyễn Thành Nhân

SELECT *
FROM Customers
WHERE (City="Vĩnh Long") OR (CustomerName="Nguyễn Thành Nhân");

- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới.

CustomerID CustomerName City Total
3 Dương Cung Như Vĩnh Long 350000
4 Nguyễn Thành Nhân Hậu Giang 175000
8 Lê Thị Mỹ Nhân Vĩnh Long 335000
Ví dụ 3:

- Liệt kê những khách hàng không sống tại Cần Thơ.

SELECT *
FROM Customers
WHERE NOT City="Cần Thơ";

- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới.

CustomerID CustomerName City Total
3 Dương Cung Như Vĩnh Long 350000
4 Nguyễn Thành Nhân Hậu Giang 175000
5 Vũ Văn Thành Đô Bạc Liêu 165000
7 Tần Thúc Bảo Sóc Trăng 208000
8 Lê Thị Mỹ Nhân Vĩnh Long 335000
Ví dụ 4:

- Liệt kê những khách hàng sống tại Sóc Trăng hoặc Hậu Giang

SELECT *
FROM Customers
WHERE (City="Sóc Trăng") OR (City="Hậu Giang");

- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới.

CustomerID CustomerName City Total
4 Nguyễn Thành Nhân Hậu Giang 175000
7 Tần Thúc Bảo Sóc Trăng 208000
Ví dụ 5:

- Liệt kê những khách hàng có có ID lớn hơn 4 và sống tại Cần Thơ hoặc Vĩnh Long

SELECT *
FROM Customers
WHERE (CustomerID > 4) AND (City="Cần Thơ" OR City="Vĩnh Long");

- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới.

CustomerID CustomerName City Total
6 Trương Bá Nhân Cần Thơ 180000
8 Lê Thị Mỹ Nhân Vĩnh Long 335000
Ví dụ 6:

- Liệt kê những khách hàng không sống tại Cần Thơ và Vĩnh Long

SELECT *
FROM Customers
WHERE (NOT City="Cần Thơ") AND (NOT City="Vĩnh Long");
SELECT *
FROM Customers
WHERE NOT (City="Cần Thơ" OR City="Vĩnh Long");

- Sau khi thực thi (một trong hai) câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới.

CustomerID CustomerName City Total
4 Nguyễn Thành Nhân Hậu Giang 175000
5 Vũ Văn Thành Đô Bạc Liêu 165000
7 Tần Thúc Bảo Sóc Trăng 208000