Cách cập nhật dữ liệu vào view (trang 147 csdl II)

Một phần của tài liệu Giáo trình quản trị cơ sở dữ liệu (Trang 128 - 130)

- Dễ dàng để bảo trì ứng dụng: Chúng ta dễ dàng sốt lỗi của View hơn là sốt

8.3 Cách cập nhật dữ liệu vào view (trang 147 csdl II)

View cĩ thể sửa chữa dữ liệu được xây dựng trên bảng:

- View chứa đựng ít nhất một bảng được định nghĩa sau mệnh đề FROM.

- Khơng chứa những hàm nhĩm hoặc mệnh đề GROUP BY, UNION, DISTINCT, hoặc TOP.

- View khơng chứa những cột được suy ra từ những cột khác

Các chức năng cĩ thể thực hiện trên View tương tự như đối với bảng. Chúng ta cĩ thể thực hiện các câu lệnh INSERT, UPDATE, và DELETE trên View.

Khi chúng ta thay đổi dữ liệu thơng qua View, đồng nghĩa với việc chúng ta thay đổi dữ liệu trên các bảng mà View đĩ đang tham chiếu. Tuy nhiên, nên thực hiện một số các quy luật sau khi thực hiện sửa chữa dữ liệu thơng qua View.

Câu lệnh SELECT trong định nghĩa View khơng nên chứa: Các hàm nhĩm dữ liệu (Aggregate functions)

Các mệnh đề TOP, GROUP BY. UNION, hoặc DISTINCT. Cột cĩ giá trị được suy ra từ các cột khác(derived columns)

Sau mệnh đề FROM trong câu lệnh SELECT nên cĩ ít nhất một bảng. Ví dụ, View sau đây khơng thể cập nhật dữ liệu:

CREATE VIEW NoTable AS SELECT Getdate() AS CurrentDate @@LANGUAGE AS CurrentLanguage

Chúng ta chỉ cĩ thể cập nhật và thêm dữ liệu vào 1 bảng đứng sau mệnh để

FROM của View. Nếu muốn cập nhật dữ liệu trên nhiều bảng, chúng ta phải sử dụng INSTEAD OF trigger.

Nếu như bảng được tham chiếu trong View chứa cột cĩ ràng buộc NOT NULL khơng phải là một phần của View thì chúng ta phải gán giá trị mặc định cho cột này để cĩ thể thêm dữ liệu cho bản ghi.

Nếu định nghĩa View cĩ chứa lựa chọn WITH CHECK, tất cả các cột được

sửa chữa phải thoả mãn điều kiện trong câu lệnh SELECT. Ví dụ, nếu câu lệnh SELECT cĩ chứa mệnh đề WHERE emp_id<=500, thì chúng ta khơng thể sửa lại

dữ liệu trong cột emp_id cĩ giá trị lớn hơn 500.

Chúng ta cĩ thể xố dữ liệu nếu như View chỉ tham chiếu đến 1 bảng. Để xố dữ liệu trên View cĩ tham chiếu sang nhiều bảng, chúng ta phải sử dụng INSTEAD OF trigger.

Chúng ta cũng cĩ thể sử dụng DPVs để cập nhật dữ liệu cho các bảng tham chiếu.

Sửa cấu trúc Views

Chúng ta cĩ thể sử dụng câu lệnh ALTER VIEW để thực hiện sửa cấu trúc của View. Cú pháp của nĩ tương tự như cú pháp của lệnh CREATE VIEW, chỉ cần thay thế từ khĩa CREATE bằng từ khố ALTER.

Cú pháp:

ALTER VIEW <Viewname> [WITH SCHEMABINDING] AS <Select_Statement>

[WITH CHECK OPTION]

Ví dụ:

ALTER VIEW Try AS SELECT flight.aircraft_code, airlines_master.airline_name,

flight.source, flight.destination, flight.dep_time, flight.journey_hrs

FROM airlines_master INNER JOIN Flight ON airlines_master.aircode = flight.aircode

Xố Views

Khi một View nào đĩ khơng cịn cần thiết nữa, chúng ta cĩ thể xố nĩ.

Cú pháp: DROP VIEW <Viewname> Ví dụ:DROP VIEW Try

Chương 9. THIẾT KẾ CƠ SỞ DỮ LIỆU

Nội dung Thời gian 20h (LT: 5; TH: 15h)

Một phần của tài liệu Giáo trình quản trị cơ sở dữ liệu (Trang 128 - 130)