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 |
- 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 |
- 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 |
- 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 |
- 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 |
- 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 |
- 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
Gửi bài viết tới Facebook