知识点:

1、视图是什么? 虚拟表,由一个或多个表通过查询而定义的,将查询定义保存起来,实际不存储数据

2、视图与表的区别? 表是存储数据的地方,而视图存储的是查询语句(索引视图除外,具体化了)

3、视图的作用? 视图的作用是简化查询,增加数据的保密性,使得真实数据更加安全

4、视图的缺点? 视图只简化了查询,并没有提高查询速度,增加了维护成本

5、视图的分类

  • 标准视图:存储查询定义,没有存储数据
  • 索引视图:被具体化了的,创建了索引,物理存储,显著提高了查询性能,适合于数据量很多的情况,不适合经常变更基础表,索引视图变动,基本表中的数据也会改变
  • 分区视图:一台或多台服务器间水平连接一组成员表的分区数据
  1. --创建标准视图,可以出现*,但是显示的列不能有重复的
  2. create view vUserinfos
  3. as
  4. select UserId,UserName,u.DeptId,DeptName
  5. from Userinfos u
  6. inner join DeptInfos d
  7. on d.DeptId = u.DeptId
  8. go
  9. --使用视图和使用表一样
  10. select * from vUserinfos
  11. --创建索引视图,不允许出现*,写列名,表前需要写所有者
  12. create view vUserInfo_index with schemabinding
  13. as
  14. select UserId,UserName,Age from dbo.
  15. go
  16. --使用
  17. select * from vUserInfo_index
  18. --索引视图创建唯一聚集索引
  19. create unique clustered index uq_vUserinfos_index
  20. on vUserInfos_index(UserId)
  21. go
  22. --分区视图:连接两个结构相同的表
  23. create view vTest
  24. as
  25. select * from Test1
  26. union all
  27. select * from Test2
  28. go