Kiến thức

[Tự học SQL] Tìm hiểu về toán tử EXISTS, ANY và ALL với SELECT trong SQL » Cafedev.vn

Trang chủ

Tự học SQL

Tìm hiểu về toán tử EXISTS, ANY và ALL với …

[Tự học SQL] Tìm hiểu về toán tử EXISTS, ANY và ALL với SELECT trong SQL

SQL EXISTS, ANY, ALL Operator

745

0

Facebook

Twitter

Pinterest

Linkedin

Email

<!—-> <!—-> <!—->

🔥CHỌN LỌC TOP NHỮNG KHOÁ HỌC LẬP TRÌNH ONLINE NHIỀU NGƯỜI THEO HOC TẠI ĐÂY🔥

Bài này cafedev chia sẻ cho ace về cách sử dụng Toán tử EXISTS, ANY và ALL trong SQL để lấy ra dữ liệu theo ý muốn của mình.

Lưu ý: Các bạn tham

khảo bài giới thiệu này để lấy dữ liệu mẫu, cấu trúc các bảng và chạy các ví dụ

của toàn bộ series này nha. Khi bạn thực hành mà không tìm thấy kết quả và không xảy ra lỗi thì có thể dữ liệu của bạn không tồn tại, vì vậy, bạn có thể insert thêm data vào bảng và thực hành lại nha.

1. Toán tử EXISTS trong SQL

Toán tử EXISTS được sử dụng để kiểm tra sự tồn tại của bất kỳ dữ liệu nào trong một truy vấn con.

Toán tử EXISTS trả về true nếu truy vấn con trả về một hoặc nhiều dữ liệu.

/* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam @author cafedevn Contact: cafedevn@gmail.com Fanpage: https://www.facebook.com/cafedevn Group: https://www.facebook.com/groups/cafedev.vn/ Instagram: https://instagram.com/cafedevn Twitter: https://twitter.com/CafedeVn Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/ Pinterest: https://www.pinterest.com/cafedevvn/ YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/ */ SELECT column_name(s) FROM table_name WHERE EXISTS (SELECT column_name FROM table_name WHERE condition); 

Ví dụ:

  • Câu lệnh SQL sau trả về TRUE và liệt kê các nhà cung cấp có giá sản phẩm nhỏ hơn 20:
SELECT SupplierName FROM Suppliers WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price < 20);
  • Câu lệnh SQL sau trả về TRUE và liệt kê các nhà cung cấp có giá sản phẩm bằng 22:
SELECT SupplierName FROM Suppliers WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price = 22); 

2. Toán tử Any và All trong SQL

Toán tử BẤT CỨ và TẤT CẢ được sử dụng với mệnh đề WHERE hoặc HAVING.

Toán tử ANY trả về true nếu bất kỳ giá trị truy vấn con nào đáp ứng điều kiện.

Toán tử ALL trả về true nếu tất cả các giá trị truy vấn con đáp ứng điều kiện.

Cú pháp Any

/* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam @author cafedevn Contact: cafedevn@gmail.com Fanpage: https://www.facebook.com/cafedevn Group: https://www.facebook.com/groups/cafedev.vn/ Instagram: https://instagram.com/cafedevn Twitter: https://twitter.com/CafedeVn Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/ Pinterest: https://www.pinterest.com/cafedevvn/ YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/ */ SELECT column_name(s) FROM table_name WHERE column_name operator ANY (SELECT column_name FROM table_name WHERE condition);

Cú pháp All

<!–

–><!—-><!–<!—-><!—-><!–

–>

SELECT column_name(s) FROM table_name WHERE column_name operator ALL (SELECT column_name FROM table_name WHERE condition); 

Lưu ý: Toán tử phải là toán tử so sánh chuẩn (=, <>,! =,>,> =, <, Hoặc <=).

Ví dụ: Any

Cấu trúc các bản bạn

tham khảo tạo đây.

Toán tử BẤT KỲ trả về TRUE nếu bất kỳ giá trị truy vấn con nào đáp ứng điều kiện.

  • Câu lệnh SQL sau trả về TRUE và liệt kê tên sản phẩm nếu nó tìm thấy BẤT KỲ bản ghi nào trong bảng OrderDetails mà số lượng = 10:
SELECT ProductName FROM Products WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity = 10); 
  • Câu lệnh SQL sau trả về TRUE và liệt kê tên sản phẩm nếu nó tìm thấy BẤT KỲ bản ghi nào trong bảng OrderDetails có số lượng> 99:
SELECT ProductName FROM Products WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity > 99); 

Ví dụ: All

Toán tử ALL trả về TRUE nếu tất cả các giá trị truy vấn con đáp ứng điều kiện.

Câu lệnh SQL sau trả về TRUE và liệt kê tên sản phẩm nếu TẤT CẢ các bản ghi trong bảng OrderDetails có số lượng = 10 (vì vậy, ví dụ này sẽ trả về FALSE, vì không phải TẤT CẢ các bản ghi trong bảng OrderDetails đều có số lượng = 10):

SELECT ProductName FROM Products WHERE ProductID = ALL (SELECT ProductID FROM OrderDetails WHERE Quantity = 10); 

Lưu ý: Các bạn tham

khảo bài giới thiệu này để lấy dữ liệu mẫu, cấu trúc các bảng và chạy các ví dụ

của toàn bộ series này nha. Khi bạn thực hành mà không tìm thấy kết quả và không xảy ra lỗi thì có thể dữ liệu của bạn không tồn tại, vì vậy, bạn có thể insert thêm data vào bảng và thực hành lại nha.

Full series tự học SQL từ cơ bản tới nâng cao tại đây nha.

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

  • Group Facebook

  • Fanpage

  • Youtube

  • Instagram

  • Twitter

  • Linkedin

  • Pinterest

  • Trang chủ

Chào thân ái và quyết thắng!

Bạn thấy chất lượng bài viết này tốt không?

Thả 1->5 ❤️ để đánh giá chất lượng bài viết.

Xếp hạng 0 / 5. Số lượng đánh giá 0

Hãy đánh giá để ủng hộ và giúp chúng tôi cải thiện bài viết tốt hơn cho bạn!

Chúng tôi xin lỗi vì bài viết chưa được chất lượng. Chúng tôi sẽ cải thiện nó sớm nhất!

Hãy gửi phản hồi của bạn cho chúng tôi

Tại sao bài viết này lại không chất lượng?

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!

Facebook

Twitter

Pinterest

Linkedin

Email

Bài trước

[Tự học SQL] Tìm hiểu về toán tử UNION, UNION ALL với SELECT trong SQL

Bài tiếp theo

[Tự học SQL] Tìm hiểu về GROUP BY, HAVING với SELECT trong SQL

David Xuân

Chuyên mục: Kiến thức

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button