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
4 trang |
Chia sẻ: vietpd | Lượt xem: 2128 | Lượt tải: 1
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