Tìm hiểu về View trong SQL Server
Đăng lúc: 10:44 AM - 05/10/2023 bởi Charles Chung - 907Trong SQL Server, View là câu lệnh truy vấn đã được viết sẵn và lưu bên trong cơ sở dữ liệu với một tên. Các bạn có thể tưởng tượng View giống như một bảng ảo mà nó có thể tổng hợp dữ liệu từ một hoặc nhiều bảng.
1. Ưu điểm của View
- Hạn chế truy cập tới các Table cụ thể. Chỉ cho phép được xem qua View.
- Hạn chế truy cập vào vào Column của Table. Khi truy cập thông qua View bạn không thể biết được tên Column mà View đó truy cập vào.
- Liên kết các Column từ rất nhiều Table vào thành Table mới được thể hiện qua View.
- Trình bày các thông tin tổng hợp (VD: sử dụng funtion như COUNT, SUM, ...)
2. Một số quy tắc trong View
- Câu lệnh CREATE VIEW chỉ có thể bao gồm mệnh đề ORDER BY nếu như có từ khóa TOP được sử dụng.
- Câu lệnh CREATE VIEW không thể bao gồm từ khóa INTO
- Nội dung câu lệnh tạo VIEW chỉ gồm câu lệnh SELECT
- View không thể tạo trên các bảng tạm.
- View không thể có full-text index
3. Cú pháp
CREATE VIEW <view_name>
AS
<select_statement>
Trong đó:
View_name là tên view
Select_statement là lệnh select định nghĩa trong view
4. Một số ví dụ (Tải file script database ở cuối bài để thực hành view)
- Tạo View
-------Tạo view để đưa ra thông tin tồn kho của từng mặt hàng--------
create view vw_Inventory
as
select sp.storeid, p.productid, p.productname, sp.quantity, p.price
from product p inner join storeproduct sp on p.productid=sp.productid
- Thực thi View
-------Thực thi view--------
select * from vw_Inventory
- Chỉnh sửa View
-------Chỉnh sửa view--------
alter view vw_Inventory
as
select top 100 percent sp.storeid, p.productid, p.productname, sp.quantity, p.price
from product p inner join storeproduct sp on p.productid=sp.productid
order by p.price
- Xóa View
-------Xóa view---------
Drop view vw_Inventory
- Tạo view với tùy chọn SchemaBinding: không cho phép người dùng chỉnh sửa tên bảng và các cột dùng trong view của bảng cơ sở. Tên của các đối tượng được chỉ ra trong câu lệnh SELECT cần phải kèm cùng với tên của lược đồ.
-------Tùy chọn Schemabiding---------
create view vw_Inventory
with schemabinding
as
select top 100 percent sp.storeid, p.productid, p.productname, sp.quantity, p.price
from dbo.product p inner join dbo.storeproduct sp on p.productid=sp.productid
order by p.price
- Tạo view với tùy chọn CheckOption: chỉ cho phép người dùng insert, delete, update dữ liệu vào bảng thông qua view mà thỏa mãn điều kiện where trong câu SELECT của view. Câu SELECT trong view phải lấy ra tất cả các cột từ 1 bảng ngoại trừ các cột null hoặc default.
-------Tạo view với tùy chọn CHECKOPTION---------
create view vw_ProductGreaterThan100k
as
select * from product where price>100000
with check option
go
--Lệnh thêm này sẽ báo lỗi vì giá 50000 không thỏa mãn điều kiện trong View--
insert into vw_ProductGreaterThan100k values('P0002',N'Sản phẩm test',6,3,'test.jpg',50000,N'Chiếc',N'Hàng mới')
- Xem nội dung view
--Xem lại câu lệnh tạo view
sp_helptext vw_ProductGreaterThan100k
- Xem nội dung view: ngăn chặn người dùng xem được nội dung câu lệnh tạo view
--Tạo view với tùy chọn with encryption
create view vw_InventoryEncrypt
with encryption
as
select sp.storeid, p.productid, p.productname, sp.quantity, p.price from product p inner join storeproduct sp on p.productid=sp.productid
---Câu lệnh này sẽ không hiển thị được nội dung view---
sp_helptext vw_InventoryEncrypt
Tải file Script database để thực hành phần view
thay lời cảm ơn!
Các bài cũ hơn
- Sinh ra entity class từ table sử dụng thủ tục trong SQL Server (11:28 AM - 21/09/2023)
- Tìm hiểu thủ tục trong SQL Server (03:11 PM - 19/09/2023)
- Tìm hiểu ngôn ngữ T-SQL(SQL Server) phần Data Definition Language (DDL) (10:09 AM - 15/09/2023)
- Tìm hiểu các kiểu dữ liệu phổ biến trong SQL Server (08:34 AM - 15/09/2023)
- Bộ hình nền độ phân giải 4k windows11 tuyệt đẹp (08:12 AM - 25/08/2023)