在SQL SERVER中的使用过程中,视图是我们不可避免要经常使用到的。那到底什么是视图呢?概括的讲,视图就是用户自己写的一段SQL语句。我们为该段SQL语句起一个名字,就称为视图名,以后想要利用该段SQL语句返回的结果集时,只要像查询表一样针对视图名写SQL语句就可以了,所以,你也可以把视图想像为一个虚拟表。
下面,我们讲解一个视图的创建与使用:
一,创建视图:
create view v_viewname as select * from table1
其中view为视图关键词,v_viewname为我们创建的视图名,select * from table1为该视图返回的结果集.
二,调用视图:与查询表一样
select * from v_viewname
三,删除视图:
drop view v_viewname
从上面的操作我们可以看出,视图创建好后,对它的操作,就和操作实体表一样。
视图的特点: 一,视图着重于特定数据。 视图可以让用户或者程序开发人员只看到他们所需要的数据,而不需要把表中的所有信息与字段暴露出来,这样增强了数据的安全性。
二,简化数据的操作,易维护。 我们可以将经常用到的多表联合查询出来的数据,或特定的结果集定义为视图,这样就起到了模块化数据的作用。我们在使用这些数据时直接查询该视图就可以,而不用到处写长长的SQL语句,这样也起到易维护的作用。
三,视图可以限定查询数据。 比如:对于不同的用户,我们只提供部分数据给他。这样,我们就可以在视图中限定结果集,然后返回该视图给他。这样,无论用户怎么对视图定义查询条件,他也不能查询出我们不想提供给他的数据。
视图的优化: 虽然视图可以给我们带来种种便利,但不意味着我们就可以滥用它。因为视图其实就是一段SQL语句,所以它的结果都是每次调用时动态生成的。如果不合理的定义视图,必然带来性能上的损耗。
下面是我们在创建视图应该要注意的几点: 一,操作视图会比直接操作基础表要慢,所以我们尽量避免在大型表上创建视图。
二,尽量不要创建嵌套视图,就是在视图中使用视图。 这样在查询时,会多次重复访问基础表,带来性能损耗。
三,尽量在视图只返回所需的信息,尽量不要在视图使用不需要访问的表。
四,在大型表或者复杂定义的视图,可以使用存储过程代替。
五,频繁使用的视图,可以使用索引视图来代替。