视图

视图简介
       视图是虚拟的表,它只包含表的一部分。这是由表派生的
 
视图的优点
1、  为用户集中数据
2、  简化数据库查询
3、  简化用户权限管理
4、  方便数据的导出
5、  视图作为一个临时的表可以与实际表进行关联操作
 
视图的分类
1、  标准视图
2、  索引视图
3、  分区视图
 
创建视图
       Create view < 视图名 >
       As < 查询语句 >
       with check point
查询语句:视图数据的来源,符合查询语句的结果将放入视图中
With check point :以视图进行 UPDATE INSERT DELETE 操作时要保证更新、插入和删除的行满足视图定义中的谓词条件【查询语句中的条件表达式】
 
例一:创建一个视图,该视图用于显示 2006 1 1 以后签订的所有合同
       Create view all-contract
       As
       Select * from contract where date<’ 2006-1-1 ’
 
修改视图
       alter view < 视图名 >
       As < 查询语句 >
例二:修改上述视图,显示 2006-1-1 以后的所有信息
       Alter view all-contract
       As
       Select * from contract where date>’ 2006-1-1 ’
 
删除视图
       Drop view all-contract
 
加密视图
       Create view all-contract
       With encryption
       As
       Select * from contract
视图权限管理
1、  使用 DENY 可以添加某一权限
2、  使用 REVOKE 取消添加的权限
 
例三:禁止任何用户来删除视图中的数据;也就是说给此视图添加拒绝删除的权限
       Deny delete on all-contract to public
例四:取消对用户拒绝删除的权限
       Revoke delete on all-contract to public
 
【视图的综合应用】
       假定某进出口公司的数据库采用分布式的结构,各分公司的数据通过广域网存储在在各分公司当地的服务器上。公司总部需要实时查询各公司的数据,因此需要建立一个视图,对于各分公司的数据进行汇总查询,查询者不需要知道各分公司的情况,以及有多少个分公司的数据库,他只需要执行一个事先建立好的视图即可
1、  创建一个名称叫 ORDER 的表
Create table order
(
Id varchar(10) not null,
Customer varchar(30) not null,
Orderdate datetime not null,
subCompanyName varchar(30)  not null,
volume money not null
)
2、  使用联合查询来查询各分公司的数据,将数据放入创建的视图中
Create view order-view
As
Select * from bj.selling.dbo.order
Union
Select * from sh.selling.dob.order
【远程数据对象的表示法】
数据库服务器 . 数据库名称 . 架构名称 . 数据库对象
3、  在公司本地直接查询视图中的内容,即可获得各分公司的数据
Select * from order-view
 
 

你可能感兴趣的:(视图,职场,休闲)