Truy vấn dữ liệu điều kiện phức tạp trong SQL (SUBQUERY, EXISTS, ANY/ALL, BETWEEN, IN)
Bài viết này giới thiệu về các “Truy vấn dữ liệu điều kiện phức tạp trong SQL“, bao gồm SUBQUERY, EXISTS, ANY/ALL, BETWEEN và IN. Các truy vấn này cho phép lựa chọn và lọc dữ liệu từ cơ sở dữ liệu dựa trên các điều kiện phức tạp và quan hệ giữa các bảng. SUBQUERY cho phép sử dụng kết quả của một truy vấn trong truy vấn khác, EXISTS kiểm tra sự tồn tại, ANY/ALL so sánh với một tập hợp giá trị, BETWEEN chọn dữ liệu trong một phạm vi, và IN lựa chọn dữ liệu từ một danh sách giá trị cụ thể. Hãy cùng Test Mentor tìm hiểu cụ thể hơn nha!
>>> XEM THÊM: CÁCH KIỂM TRA DỮ LIỆU TRONG SQL DATEBASE
Nội Dung Bài Viết
SUBQUERY (Truy vấn con)
Định nghĩa và ý nghĩa của SUBQUERY
SUBQUERY trong SQL là một truy vấn con được nhúng trong một truy vấn lớn hơn. Nó cho phép sử dụng kết quả của truy vấn con để thực hiện truy vấn khác. Ngoài ra, SUBQUERY còn là một công cụ mạnh trong SQL, cho phép thực hiện các truy vấn phức tạp và liên kết dữ liệu từ các bảng khác nhau trong cùng một truy vấn.
Cú pháp và cách sử dụng SUBQUERY
- Cú pháp của SUBQUERY:
SELECT column_name(s)
FROM table_name
WHERE column_name [operator] (SELECT column_name(s) FROM table_name WHERE condition);
- Cách sử dụng SUBQUERY:
- Sử dụng SUBQUERY trong điều kiện WHERE: SUBQUERY có thể được sử dụng để xác định một điều kiện phức tạp trong câu lệnh WHERE của truy vấn chính.
- Sử dụng SUBQUERY trong câu lệnh FROM: SUBQUERY có thể được sử dụng như một bảng ảo trong câu lệnh FROM của truy vấn chính.
Ví dụ về SUBQUERY trong SQL
Lấy danh sách các khách hàng có đơn hàng trong bảng “Orders”:
SELECT CustomerName
FROM Customers
WHERE CustomerID IN (SELECT CustomerID FROM Orders);
Lấy danh sách các sản phẩm có giá bán cao hơn giá trung bình của tất cả các sản phẩm:
SELECT ProductName
FROM Products
WHERE UnitPrice > (SELECT AVG(UnitPrice) FROM Products);
EXISTS (Tồn tại)
Định nghĩa và ý nghĩa của EXISTS
EXISTS trong SQL là một toán tử được sử dụng để kiểm tra sự tồn tại của các bản ghi trong một truy vấn con. Nó trả về giá trị TRUE nếu truy vấn con trả về ít nhất một bản ghi và FALSE nếu không có bản ghi nào.
Cú pháp và cách sử dụng EXISTS
- Cú pháp của EXISTS:
SELECT column_name(s)
FROM table_name
WHERE EXISTS (SELECT column_name(s) FROM table_name WHERE condition);
- Cách sử dụng EXISTS:
- Sử dụng EXISTS trong câu lệnh SELECT: EXISTS có thể được sử dụng để kiểm tra sự tồn tại của các bản ghi trong câu lệnh SELECT chính.
- Sử dụng EXISTS trong câu lệnh WHERE: EXISTS có thể được sử dụng để áp dụng một điều kiện phụ thuộc vào sự tồn tại của các bản ghi trong câu lệnh WHERE.
Ví dụ về EXISTS trong SQL
Lấy danh sách các khách hàng có đơn hàng trong bảng “Orders”:
SELECT CustomerName
FROM Customers
WHERE EXISTS (SELECT * FROM Orders WHERE Orders.CustomerID = Customers.CustomerID);
Lấy danh sách các sản phẩm có ít nhất một đơn hàng đã được đặt:
SELECT ProductName
FROM Products
WHERE EXISTS (SELECT * FROM OrderDetails WHERE OrderDetails.ProductID = Products.ProductID);
ANY/ALL (Bất kỳ/Tất cả)
Định nghĩa và ý nghĩa của ANY và ALL
ANY và ALL là các toán tử trong SQL được sử dụng để so sánh một giá trị với một tập hợp giá trị từ một truy vấn con.
- ANY: Toán tử ANY được sử dụng để so sánh một giá trị với ít nhất một giá trị trong tập hợp. Nếu bất kỳ giá trị nào khớp với giá trị được so sánh, kết quả là TRUE.
- ALL: Toán tử ALL được sử dụng để so sánh một giá trị với tất cả các giá trị trong tập hợp. Kết quả sẽ là TRUE chỉ khi tất cả các giá trị khớp với giá trị được so sánh.
Cú pháp và cách sử dụng ANY và ALL
- Cú pháp của ANY và ALL:
SELECT column_name(s)
FROM table_name
WHERE column_name [operator] ANY/ALL (SELECT column_name(s) FROM table_name WHERE condition);
- Cách sử dụng ANY và ALL: Sử dụng ANY và ALL trong câu lệnh WHERE: ANY và ALL có thể được sử dụng để so sánh giá trị trong câu lệnh WHERE của truy vấn chính.
Ví dụ về ANY và ALL trong SQL
- Lấy danh sách các khách hàng có đơn hàng có giá trị lớn hơn bất kỳ giá trị nào trong bảng “Orders”:
SELECT CustomerName
FROM Customers
WHERE OrderAmount > ANY (SELECT OrderAmount FROM Orders);
- Lấy danh sách các khách hàng có tất cả đơn hàng có giá trị lớn hơn 100:
SELECT CustomerName
FROM Customers
WHERE 100 < ALL (SELECT OrderAmount FROM Orders WHERE Orders.CustomerID = Customers.CustomerID);
BETWEEN (Nằm trong khoảng)
Định nghĩa và ý nghĩa của BETWEEN
- Định nghĩa: BETWEEN trong SQL là một toán tử được sử dụng để xác định xem một giá trị có nằm trong một khoảng giá trị cụ thể hay không.
- Ý nghĩa của BETWEEN: Toán tử BETWEEN được sử dụng để kiểm tra xem một giá trị có nằm trong khoảng giữa hai giá trị được xác định hay không. Nó trả về giá trị TRUE nếu giá trị nằm trong khoảng và FALSE nếu không.
Cú pháp và cách sử dụng BETWEEN
- Cú pháp của BETWEEN:
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
- Cách sử dụng BETWEEN: Sử dụng BETWEEN trong câu lệnh WHERE: BETWEEN có thể được sử dụng để áp dụng một điều kiện phụ thuộc vào giá trị nằm trong một khoảng cụ thể.
Ví dụ về BETWEEN trong SQL
Lấy danh sách các sản phẩm có giá bán trong khoảng từ 10 đến 50:
SELECT ProductName
FROM Products
WHERE UnitPrice BETWEEN 10 AND 50;
IN (Trong danh sách)
Định nghĩa và ý nghĩa của IN
- Định nghĩa: IN trong SQL là một toán tử được sử dụng để kiểm tra xem một giá trị có nằm trong một danh sách giá trị cụ thể hay không.
- Ý nghĩa của IN: Toán tử IN được sử dụng để kiểm tra xem một giá trị có trùng khớp với bất kỳ giá trị nào trong danh sách hay không. Nó trả về giá trị TRUE nếu giá trị trùng khớp và FALSE nếu không.
Cú pháp và cách sử dụng IN
- Cú pháp của IN:
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);
- Cách sử dụng IN: Sử dụng IN trong câu lệnh WHERE: IN có thể được sử dụng để áp dụng một điều kiện phụ thuộc vào giá trị có trong danh sách giá trị cụ thể.
Ví dụ về IN trong SQL
Lấy danh sách các sản phẩm có danh mục là ‘Electronics’ hoặc ‘Clothing’:
SELECT ProductName
FROM Products
WHERE Category IN ('Electronics', 'Clothing');
Tổng kết
Trong SQL, truy vấn dữ liệu điều kiện phức tạp đóng vai trò quan trọng trong việc truy xuất và xử lý dữ liệu từ cơ sở dữ liệu. Chúng ta đã tìm hiểu về các công cụ như SUBQUERY, EXISTS, ANY/ALL, BETWEEN và IN để thực hiện các truy vấn phức tạp.
SUBQUERY cho phép chúng ta sử dụng truy vấn con để truy xuất dữ liệu từ nhiều bảng khác nhau, mở rộng khả năng lựa chọn dữ liệu trong truy vấn chính. EXISTS kiểm tra sự tồn tại của bản ghi trong truy vấn con, giúp kiểm tra điều kiện trước khi thực hiện hành động.
ANY/ALL cho phép so sánh giá trị với tập hợp giá trị từ truy vấn con, mở rộng khả năng so sánh phức tạp. BETWEEN kiểm tra xem giá trị có nằm trong một khoảng giá trị cụ thể hay không. IN kiểm tra xem giá trị có trùng khớp với danh sách giá trị cụ thể hay không.
Nhờ vào những công cụ này, chúng ta có thể thực hiện truy vấn dữ liệu phức tạp và linh hoạt, tạo ra các kết quả tùy chỉnh từ cơ sở dữ liệu. Hiểu và sử dụng tốt các công cụ này giúp chúng ta làm việc hiệu quả với dữ liệu, tận dụng toàn bộ khả năng của SQL trong việc truy vấn và xử lý dữ liệu.
Lan Hoang
Leave a Comment