Chương 6 giới thiệu về View – Bảng ảo. Những nội dung chính được trình bày trong chương này gồm có: Khái niệm, tạo view bằng lệnh create view, tạo view bằng công cụ quản lý management. Mời các bạn cùng tham khảo.
Trang 1CHƯƠNG VI
VIEW – BẢNG ẢO
Giảng viên: Phạm Mạnh Cương
CHƯƠNG VI
VIEW – BẢNG ẢO
Giảng viên: Phạm Mạnh Cương
1
Trang 2I- Khái niệm :
• View là đối tượng dùng lưu trữ một phát biểu Select.
• View được xem như là một Table có cấu trúc và dữ liệu trả
về bởi phát biểu Select
Do đó View được dùng trong:
• Mệnh đề FROM của phát biểu Select khác
• Các phát biểu Insert, Update, Delete để cập nhật dữ liệu
trên Table nguồn của View.
Trang 3II- Tạo VIEW
3
1 Bằng Lệnh CREATE VIEW
2 Bằng công cụ quản lý Management
Trang 41- Bằng Lệnh CREATE VIEW:
Cú pháp: CREATE VIEW view_name [ (< column_list >) ]
[WITH ENCRYPTION]
AS <phát biểu SELECT>
[WITH CHECK OPTION]
Ví dụ:
1 Tạo view liệt kê các mặt hàng đã ghi trên hóa đơn số 10248 gồm mã số, tên, tiền bán các mặt hàng đó.
2 Tạo View liệt kê danh sách hóa đơn đã ghi trong ngày với cấu trúc: SoHD, NgayHD, TienHD từ table HoaDon và CTHD
Trang 55
Trang 6Thay đổi dữ liệu trên Table nguồn của View
CREATE VIEW vwCTHD (SoHD, MaMH, SoLuong)
AS
SELECT SoHD, MaMH, SL
FROM CTHD Where SoHD = 10248
Go
INSERT vwCTHD(SoHD, MaMH, SoLuong) VALUES(10248,1,20)
INSERT vwCTHD(SoHD, MaMH, SoLuong) VALUES(10249,1,20)
UPDATE vwCTHD SET SoLuong = SoLuong + 10
WHERE SoHD = 10249
DELETE vwCTHD WHERE SoHD = 10249
Trang 7Hạn chế của View trong phát biểu cập nhật :
7
• Không thể sử dụng View để cập nhật dữ liệu trên table, nếu mệnh đề
Select có chứa hàm tổng hợp, chứa cột tính toán hoặc có chứa từ khóa TOP, Group By, hoặc Distinct.
• Phát biểu DELETE chỉ sử dụng trên View có 1 table nguồn
• Phát biểu INSERT hay UPDATE chỉ thay đổi dữ liệu trên 1 Table của
mệnh đề From.
CREATE VIEW vwCTHD1
AS Select SoHD, CTHD.MaMH, TenMH, SL, DGBan
From MatHang Inner Join CTHD On MatHang.MaMH=CTHD.MaMH
Go
Insert vwCTHD1(SoHD, MaMH, SL) Values(10248,1,20)
Insert vwCTHD1(SoHD, MaMH, SL) Values(10249,1,20)
Trang 8WITH CHECK OPTION Ràng buộc dữ liệu cập nhật theo điều kiện Where
CREATE VIEW vwCTHD2 (SoHD, MaMH, SoLuong)
AS
SELECT SoHD, MaMH, SL FROM CTHD WHERE SoHD = 10248
WITH CHECK OPTION
Go
UPDATE vwCTHD2 SET SoLuong = SoLuong + 10
INSERT vwCTHD2(SoHD,MaMH,SoLuong) VALUES(10248,1,20)
INSERT vwCTHD2(SoHD,MaMH,SoLuong) VALUES(10249,1,20)
Error : The attempted insert or update failed because the target view either
specifies WITH CHECK OPTION or spans a view that specifies WITH
Trang 92- Bằng công cụ Manage
9
• Click phải mục Views trên khung trái và chọn New View…
• Click nút Add Table để chọn bảng nguồn
• Chọn Field và khai báo thuộc tính cho các Field
• Click nút Execute SQL để thực hiện truy vấn
• Click nút Save để lưu và đặt tên View
Trang 10Màn hình thiết kế
Trang 11CẢM ƠN
11