Bài giảng View, bảng ảo

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

pdf4 trang | Chia sẻ: vietpd | Lượt xem: 2048 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Bài giảng View, bảng ảo, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1Chương 6: VIEW – BẢNG ẢO Giáo viên: Tạ Thúc Nhu Khoa CNTT trường ĐH Lạc Hồng HỆ QUẢN TRỊ CSDL SQL SERVER SQL Server2 I- 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. SQL Server3 II- Tạo VIEW 1. Bằng Lệnh CREATE VIEW 2. Bằng công cụ quản lý Management SQL Server4 1- Bằng Lệnh CREATE VIEW: Cú 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à CTHD 2SQL Server5 SQL Server6 Thay đổi dữ liệu trên Table nguồn của View CREATE VIEW vwCTHD (MaHD, MaMH, SoLuong) AS SELECT SoHD, MaMH, SL FROM CTHD Where SoHD = 10248 Go INSERT vwCTHD(MaHD, MaMH, SoLuong) VALUES(10248,1,20) INSERT vwCTHD(MaHD, MaMH, SoLuong) VALUES(10249,1,20) UPDATE vwCTHD SET SoLuong = SoLuong + 10 WHERE MaHD = 10249 DELETE vwCTHD WHERE MaHD = 10249 SQL Server7 Hạn chế của View trong phát biểu cập nhật: • 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 vwCTHD AS Select SoHD, CTHD.MaMH, TenMH, SL, DGBan From MatHang Inner Join CTHD On MatHang.MaMH=CTHD.MaMH Go Insert vwCTHD(SoHD, MaMH, SL) Values(10248,1,20) Insert vwCTHD(SoHD, MaMH, SL) Values(10249,1,20) SQL Server8 WITH CHECK OPTION Ràng buộc dữ liệu cập nhật theo điều kiện Where CREATE VIEW vwCTHD (MaHD, MaMH, SoLuong) AS SELECT SoHD, MaMH, SL FROM CTHD WHERE SoHD = 10248 WITH CHECK OPTION Go UPDATE vwCTHD SET SoLuong = SoLuong + 10 INSERT vwCTHD(MaHD,MaMH,SoLuong) VALUES(10248,1,20) INSERT vwCTHD(MaHD,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 CHECK OPTION and one or more rows resulting from the operation did not qualify under the CHECK OPTION constraint. 3SQL Server9 2- Bằng công cụ Manage • 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 SQL Server10 Màn hình thiết kế SQL Server11 III- XEM THÔNG TIN VIEW: 1. Table Sys.Views chứa danh sách các View do người dùng tạo 2. Table Sys.Columns chứa danh sách các cột trong các table hay view; các tham số trong các thủ tục hay hàm của CSDL hiện hành – Thuộc tính Object_ID chứa giá trị nhận diện đối tượng Table, View, thủ tục hay hàm. – Dùng thủ tục Object_ID('TênĐốitượng') để trả về giá trị Object_ID của các đối tượng này Ví dụ: Liệt kê thông tin các cột trong View ‘vwTienHD' Select * From SYS.Columns Where Object_ID= Object_ID('vwTienHD') 3. thủ tục SP_HELPTEXT [ ‘TênView’ ] : Xem câu lệnh Create View Ví dụ: EXEC SP_HELPTEXT vwTienHD SQL Server12 IV- Thay đổi định nghĩa View: 1. Dùng phát biểu ALTER VIEW ALTER VIEW TênView [(TênCột, ...)] [WITH ENCRYPTION] AS Phát biểu Select [WITH CHECK OPTION] 2. Dùng giao diện đồ họa Management: • Click phải vào đối tượng View và chọn Design View sẽ hiển thị màn hình thiết kế View • Click phải vào đối tượng View và chọn Edit View sẽ hiển thị màn hình chứa lệnh tạo View 4SQL Server13 V- XÓA VIEW: 1. Băng lệnh DROP VIEW: DROP VIEW 2. Dùng giao diện đồ họa Management: Click phải vào đối tượng View và chọn Delete SQL Server14 Ví dụ USE SieuThi Go IF EXISTS (SELECT 1 FROM Sys.Objects WHERE Name = 'vwCTHD' And Type = ‘V’) DROP VIEW vwCTHD GO
Tài liệu liên quan