视图
一 . 视图的好处:
1. 视图隐藏了底层的表结构,简化了数据访问操作 。
2. 因为隐藏了底层的表结构,所以大大加强了安全性,用户只能看到视图提供的数据。
3.使用视图,方便了权限管理,让用户对视图有权限而不是对底层表有权限进一步加强了安全性 。4. 视图提供了一个用户访问的接口,当底层表改变后,改变视图的语句来进行适应,使已经建立在这个视图上客户端程序不受影响 。
二. 视图(View)的分类:
视图在SQL中可以分为三类
1. 普通视图(Regular View)
2. 索引视图(Indexed View)
3. 分割视图(Partitioned View)
普通视图由一个Select语句所定义,视图仅仅包含其定义和被引用表的metadata.并不实际存储数据。
MSDN中创建视图的模版如下:
CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]
[ WITH <view_attribute> [ ,...n ] ]
AS select_statement
[ WITH CHECK OPTION ] [ ; ]
<view_attribute> ::=
{
[ ENCRYPTION ]
[ SCHEMABINDING ]
[ VIEW_METADATA ]
}
三 . 通过视图来更新数据需要注意以下几点:
1.视图中From子句之后至少有一个用户表
2.View的查询无论涉及多少张表,一次只能更新其中一个表的数据
3.对于表达式计算出来的列,常量列,聚合函数算出来的列无法更新
4.Group By,Having,Distinct关键字不能影响到的列不能更新