Cỏc truy vấn con tạo ra cỏc giỏ trị vụ hướng

Một phần của tài liệu Giáo trình Ngôn ngữ SQL doc (Trang 25 - 27)

1.3 CÁC TRUY VẤN CON

1.3.1 Cỏc truy vấn con tạo ra cỏc giỏ trị vụ hướng

Một giỏ trị nguyờn tử cú thể xuất hiện như một thành phần của một bộ được xem là một vụ hướng. Một biểu thức select-from-where cú thể tạo ra

một quan hệ cú số cỏc thuộc tớnh tuỳ ý và cú số bộ giỏ trị tuỳ ý trong quan hệ. Tuy nhiờn, thụng thường chỳng ta chỉ quan tõm đến cỏc giỏ trị của một thuộc tớnh đơn. Hơn nữa, đụi lỳc chỳng ta cú thể suy ra từ thụng tin về khoỏ

hoặc từ cỏc thụng tin khỏc. Chẳng hạn, chỳng ta cú thể so sỏnh kết quả của một truy vấn con như vậy với một hằng hoặc một thuộc tớnh.

Vớ dụ 17: Chỳng ta muốn đưa ra Họđệm và Tờn của cỏc nhõn viờn trong đơn vị cú tờn là ‘Nghiờncứu’. Chỳng ta cần truy vấn hai quan hệ: NHÂNVIấN và ĐƠNVỊ. Bởi vỡ chỉ cú quan hệ đầu cú thụng tin về Họđệm và Tờn và chỉ cú quan hệ thứ hai cú cỏc tờn của đơn vị. Thụng tin được liờn kết bằng ‘MósốĐV’.

Cú nhiều cỏch khỏc nhau để nhỡn vào truy vấn này. Chỳng ta chỉ cần quan hệ ĐƠNVỊ để nhận được số MósốĐV cho đơn vị cú tờn là ‘Nghiờn cứu’. Mỗi khi chỳng ta cú nú, chỳng ta cú thể truy vấn quan hệ NHÂNVIấN để tỡm ra họ đệm và tờn của cỏc nhõn viờn trong đơn vị đú. Vấn đề đầu tiờn là nhận được MósốĐV. Chỳng ta cú thể viết nú như một truy vấn con và kết quả của nú sẽ là một giỏ trị đơn. Cú thể sử dụng giỏ trị này trong truy vấn “chớnh” để đạt được kết quả mong muốn:

1) SELECT Họđệm, Tờn 2) FROM NHÂNVIấN 3) WHERE MósốĐV = 4) (SELECT MósốĐV 5) FROM ĐƠNVỊ 6) WHERE TờnĐV = ‘Nghiờncứu’ ;

Cỏc dũng từ 4) đến 6) là truy vấn con. Chỉ nhỡn vào truy vấn con này chỳng ta sẽ thấy rằng kết quả sẽ là một quan hệ cú một thuộc tớnh là MósốĐV và chỳng ta hy vọng sẽ tỡm thấy chỉ một bộ trong quan hệ này, giả sử đú là 5. Khi đó thực hiện truy vấn con này, chỳng ta cú thể thực hiện cỏc dũng từ 1) đến 3) của truy vấn trờn như là giỏ trị 5 đó thay thế truy vấn con. Như vậy, truy vấn “chớnh” sẽ được thực hiện như là

SELECT Họđệm, Tờn FROM NHÂNVIấN WHERE MósốĐV = 5 ;

Một phần của tài liệu Giáo trình Ngôn ngữ SQL doc (Trang 25 - 27)

Tải bản đầy đủ (PDF)

(177 trang)