1.7 KHUNG NHèN (VIEW)
1.7.2 Truy vấn cỏc khung nhỡn
Quan hệ NVHÀNỘI khụng chứa cỏc bộ theo nghĩa thụng thường. Đỳng hơn là nếu chỳng ta truy vấn NVHÀNỘI, cỏc bộ thớch hợp sẽ nhận được từ bảng cơ sở NHÂNVIấN, vỡ vậy truy vấn cú thể được trả lời. Kết quả là chỳng ta cú thể hỏi NVHÀNỘI hai lần cựng một truy vấn và nhận được cỏc trả lời khỏc nhau. Lý do là ở chỗ, mặc dự chỳng ta khụng thay đổi định nghĩa của khung nhỡn NVHÀNỘI nhưng bảng cơ sở NHÂNVIấN cú thể bị thay đổi trong thời gian giữa hai lần truy vấn.
Vớdụ 41 Chỳng ta cú thể truy vấn khung nhỡn NVHÀNỘI như thể nú là một bảng được lưu giữ, chẳng hạn:
SELECT Tờn
FROM NVHÀNỘI WHERE MósốĐV = 4 ;
Định nghĩa của khung nhỡn NVHÀNỘI được sử dụng để biến đổi truy vấn ở trờn thành truy vấn mới chỉ nhắm đến bảng cơ sở NHÂNVIấN. Truy vấn trờn tương đương với truy vấn
SELECT Tờn
FROM NHÂNVIấN
WHERE Địachỉ = ‘Hà nội’ AND MósốĐV = 4 ;
Vớ dụ 42 Cú thể viết cỏc truy vấn chứa cả bảng lẫn khung nhỡn, chẳng hạn: SELECT TờnĐV, Tờn
FROM NVHÀNỘI, ĐƠNVỊ
WHERE NVHÀNỘI.MósốĐV = ĐƠNVỊ.MósốĐV
Truy vấn này đũi hỏi tờn của đơn vị và tờn của cỏc nhõn viờn cú địa chỉ tại Hà nội.
Vớdụ 43 Chỳng ta hóy xột một truy vấn phức tạp hơn được sử dụng để định nghĩa một khung nhỡn.
CREATE VIEW NVĐV AS SELECT TờnĐV, Tờn
FROM NHÂNVIấN, ĐƠNVỊ
WHERE NHÂNVIấN.MósốĐV = ĐƠNVỊ.MósốĐV;
Chỳng ta cú thể truy vấn khung nhỡn này như thể nú là một quan hệ được lưu trữ, vớ dụ
SELECT Tờn FROM NVĐV
WHERE Tờn = ‘Thanh’;
Truy vấn ở trờn tương đương với truy vấn: SELECT Tờn
AND (Tờn = ‘Thanh’);