知识点:
1、视图是什么? 虚拟表,由一个或多个表通过查询而定义的,将查询定义保存起来,实际不存储数据
2、视图与表的区别? 表是存储数据的地方,而视图存储的是查询语句(索引视图除外,具体化了)
3、视图的作用? 视图的作用是简化查询,增加数据的保密性,使得真实数据更加安全
4、视图的缺点? 视图只简化了查询,并没有提高查询速度,增加了维护成本
5、视图的分类
- 标准视图:存储查询定义,没有存储数据
- 索引视图:被具体化了的,创建了索引,物理存储,显著提高了查询性能,适合于数据量很多的情况,不适合经常变更基础表,索引视图变动,基本表中的数据也会改变
- 分区视图:一台或多台服务器间水平连接一组成员表的分区数据
--创建标准视图,可以出现*,但是显示的列不能有重复的
create view vUserinfos
as
select UserId,UserName,u.DeptId,DeptName
from Userinfos u
inner join DeptInfos d
on d.DeptId = u.DeptId
go
--使用视图和使用表一样
select * from vUserinfos
--创建索引视图,不允许出现*,写列名,表前需要写所有者
create view vUserInfo_index with schemabinding
as
select UserId,UserName,Age from dbo.
go
--使用
select * from vUserInfo_index
--索引视图创建唯一聚集索引
create unique clustered index uq_vUserinfos_index
on vUserInfos_index(UserId)
go
--分区视图:连接两个结构相同的表
create view vTest
as
select * from Test1
union all
select * from Test2
go