Scalar subquery là gì?

Noun Database
Truy vấn con vô hướng

SQL cho phép truy vấn con (subquery) xảy ra ở bất cứ nơi nào cho phép một biểu thức (expression) trả về một giá trị, miễn là truy vấn con chỉ trả về một bộ tuple chứa một thuộc tính (attribute) duy nhất; những truy vấn con như vậy được gọi là truy vấn con vô hướng (scalar subquery). Ví dụ: một truy vấn con có thể được sử dụng trong mệnh đề select như minh họa trong ví dụ sau liệt kê tất cả các department cùng với số lượng instructor trong mỗi department:


select dept name,
           (select count(*)
           from instructor
           where department.dept name = instructor.dept name)
           as num instructors
from department;

Truy vấn con trong ví dụ này được đảm bảo chỉ trả về một giá trị duy nhất vì nó có count (*) mà không có group by.

Truy vấn con vô hướng (scalar subquery) có thể xảy ra trong các mệnh đề select, where và having. Lưu ý rằng về mặt kỹ thuật, kết quả truy vấn con vô hướng vẫn là một quan hệ (relation), ngay cả khi nó chứa một tuple duy nhất. Tuy nhiên, khi một truy vấn con vô hướng (scalar subquery) được sử dụng trong một biểu thức trong đó một giá trị được mong đợi, SQL sẽ hoàn toàn trích xuất giá trị từ thuộc tính đơn của tuple đơn trong quan hệ và trả về giá trị đó.

Learning English Everyday