Bài giảng thực hành cơ SỞ DỮ liệU


Truy vấn con không tương quan



tải về 4.27 Mb.
Chế độ xem pdf
trang35/43
Chuyển đổi dữ liệu13.11.2023
Kích4.27 Mb.
#55638
1   ...   31   32   33   34   35   36   37   38   ...   43
TH CSDL 2015Sep
NEW.Bài giảng CSDL sau nghiệm thu-2023, 6. Đề cương Cơ sở dữ liệu- sau nghiệm thu. 23.02.2022, Chuong01-CSDL
2. Truy vấn con không tương quan 
Một truy vấn con không tương quan là truy vấn con độc lập với truy vấn bên ngoài. Truy 
vấn con không tương quan được thi hành thi hành đầu tiên và một lần duy nhất cho toàn 


90 
bộ câu lệnh. Kết quả của truy vấn con được điền vào truy vấn bên ngoài, và cuối cùng thi 
hành truy vấn bên ngoài. 
Ví dụ: đưa các các sản phẩm không có mặt trong bất kỳ một đơn hàng nào. Truy vấn con 
bên trong sẽ trả về các mã sản phẩm có trong bảng orderdetails. Truy vấn bên ngoài sẽ trả 
về các sản phẩm có mã không trong danh sách các mã sản phẩm đó.
SELECT *
FROM products
WHERE productCode not in 
(SELECT productCode
FROM orderdetails 

Ví dụ:đưa ra các sản phẩm có mặt trong các đơn hàng 
SELECT * FROM products
WHERE productCode in 
(SELECT productCode
FROM orderdetails 



91 
3. Truy vấn con tương quan 
Truy vấn con tương quan không độc lập với truy vấn bên ngoài. Một truy vấn con tương 
quan là một truy vấn con sử dụng các giá trị từ truy vấn bên ngoài trong mệnh đề 
WHERE của nó. Quá trình thực hiện như sau: các truy vấn bên ngoài được thực hiện 
trước tiên và sau đó thi hành truy vấn con bên trong cho mỗi dòng kết quả của truy vấn 
bên ngoài. 
Ví dụ:đưa ra các sản phẩm có số lượng trong kho lớn hơn trung bình số lượng trong kho 
của các sản phẩm cùng loại.
SELECT * FROM products p 
WHERE quantityInStock > 
(SELECt avg(quantityInStock)
FROM products 
WHERE productLine = p.productLine 

Quá trình thực hiện truy vấn như sau: với mỗi dòng sản phẩm của truy vấn bên ngoài, câu 
lệnh truy vấn bên trong sẽ tìm ra số lượng sản phẩm trung bình của của sản phẩm cùng 
loại với sản phẩm đó và kết quả của truy vấn con sẽ được đưa vào mệnh đề WHERE để 
kiểm tra. 
Ví dụ: đưa ra các sản phẩm có mặt trong các đơn hàng, cách viết dưới đây là một cách 
khác của ví dụ ở phần trước. Sử dụng toán tử EXISTS để kiểm tra sự tồn tại. 
SELECT * FROM products as p 


92 
WHERE exists
(SELECT productCode
FROM orderdetails
WHERE productCode = p.productCode) 

tải về 4.27 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   31   32   33   34   35   36   37   38   ...   43




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương