Bài giảng SQL Server - Chương 6: Bảng ảo (View) - Phạm Mạnh Cương

• 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.

ppt11 trang | Chia sẻ: candy98 | Lượt xem: 600 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng SQL Server - Chương 6: Bảng ảo (View) - Phạm Mạnh Cương, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
CHƯƠNG VIVIEW – BẢNG ẢOGiảng viên: Phạm Mạnh Cương1I- Khái niệm :2• 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 SelectDo đó 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ệutrên Table nguồn của View.II- Tạo VIEW31. Bằng Lệnh CREATE VIEW2. Bằng công cụ quản lý Management1- Bằng Lệnh CREATE VIEW:4Cú pháp: CREATE VIEW view_name [ () ][WITH ENCRYPTION]AS [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à CTHD5Thay đổi dữ liệu trên Table nguồn của View6CREATE VIEW vwCTHD (SoHD, MaMH, SoLuong)ASSELECT SoHD, MaMH, SLFROM CTHD Where SoHD = 10248GoINSERT vwCTHD(SoHD, MaMH, SoLuong) VALUES(10248,1,20)INSERT vwCTHD(SoHD, MaMH, SoLuong) VALUES(10249,1,20)UPDATE vwCTHD SET SoLuong = SoLuong + 10WHERE SoHD = 10249DELETE vwCTHD WHERE SoHD = 10249Hạ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óaTOP, 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 vwCTHD1AS Select SoHD, CTHD.MaMH, TenMH, SL, DGBanFrom MatHang Inner Join CTHD On MatHang.MaMH=CTHD.MaMHGoInsert vwCTHD1(SoHD, MaMH, SL) Values(10248,1,20)Insert vwCTHD1(SoHD, MaMH, SL) Values(10249,1,20)WITH CHECK OPTION Ràng buộc dữ liệu cập nhật theo điều kiện Where8CREATE VIEW vwCTHD2 (SoHD, MaMH, SoLuong)ASSELECT SoHD, MaMH, SL FROM CTHD WHERE SoHD = 10248WITH CHECK OPTIONGoUPDATE vwCTHD2 SET SoLuong = SoLuong + 10INSERT 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 eitherspecifies WITH CHECK OPTION or spans a view that specifies WITHCHECK OPTION and one or more rows resulting from the operation did notqualify under the CHECK OPTION constraint.2- Bằng công cụ Manage9• 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 ViewMàn hình thiết kế10CẢM ƠN11