视图定义:视图是一个临时表或者虚拟表,将多个表中你需要的列数据,组合成一张表,方便顾客阅读查看数据。
视图分类:标准视图、索引视图、分区视图。
视图和表的区别:数据表是存储数据的真实位置,视图存储的是查询语句。
视图的优缺点:
优点(作用:简化,数据查询,将多个表组合起来结果成为一个表,增加数据的保密性,安全上得到保证。)
缺点:只是简化查询不提高数据的查询效率,安全性上得到了保证,却增加了维护成本
三种视图详解:标准视图 (存储查询定义,没有存储数据)
标准视图语法格式:
create view 列名
as
select 列名 ,列名
from 表名
inner join 列名
on 表名.列名 = 表名.列名
标准视图实战操作:(注意看清多表查询语句中, 只要两表有相同字段就可以建起连接,我用的字段是 StudentDB 数据库中 dbo.StudentInfo 表 StuName字段 和dbo. 表 StuName字段 )
索引视图:(被具体化的,创建索引,创建了索引,显著提高查询效率,聚合了很多行的查询,不太适合经常更新基本数据集)
创建索引语句格式:
create view 视图名称(视图名称后面尽量加上_index 以表名这是一个试图索引) with schemabinding
as
select 列名 (可以是多个列,列与列之间用逗号隔开 ) from 表名(表明前面必须加上所有者 dbo
)
go --查询select 后面不能使用* ,你查询多少列 你就必须写上多少列
创建效果图:
索引视图注意事项:
索引视图 :实际存在,会影响基础表 ,适合多行数据的情况下,不建议对索引试图进行删除修改操作,因为 索引视图和其他两种视图是不同的,索引视图中的数据是具体存在,与你所查寻数据的来源的表之间是相关,如果你对索引视图进行做修改操作,你所进行的也会在其来源表里,也会被删除,这样产生的后果是非常严重的。
分区视图:(一台或者多台服务器间水平连接,一组成员表的分区数据。)
个人理解 创建分区视图前,首先检查建立连接两个表之间 数据结构是否保持一致,在列的数量上, 数据类型上必须保持一致,字段名称可以不同
分区视图语法格式:
create view 视图名称
as
select * from 表名
union all
select * from 表名
go
创建效果图:
上述操作为,创建分区视图,顺道查询创建的分区视图dbo.Vtwotest,属于批处理 go在语句末尾加上 go,创建命令结果提示成功,只是未显示。
分区索引创建注意事项:首先你在建立查询连接的两个表,之间表的字段就是列 要保持一致,就是数量上要一样,例如:dbo.test有三列,dbo.test2也有三列,在此基础上重中之重,两个表与之相对应的列中之间,的数据类型要一致,int 两个表相对应的列数据类型都为 int,你不能说 第一个表中,第一列是int数据类型,第二表第第一列数据类型是 varchar 或data 这样就不能创建成功,因为不符合分区视图创建的规则。
那么如果第一个表的第一列的列名为id,第二个表的第一列的列名为TypeName ,也就是列名不同,能分区视图成创建成功吗?
答:显然是可以的 ,所以在创建分区视图,只要注重好,两张表各自的列的数量,相对应的列数据类型是否相同,就可以了
查询视图语法格式:
select *from vStudentDB_index -- vStudentDB_index 为视图名 根据自己创建视图名自行修改