什么时候用到视图

时间:2021-09-13 13:25:09

http://www.cnblogs.com/gzmg/p/3379953.html

比如一个比较复杂的查询不想每次都写很多语句,就可以写个视图。
或者给特定用户开放某些表的读取权限,但要加一些行和列的限制,也可以写个视图。

 

 

视图的好处,可以主要分为四点: 
我简单的说一下,希望你能明白。 

第一点: 
使用视图,可以定制用户数据,聚焦特定的数据。 

解释: 
在实际过程中,公司有不同角色的工作人员,我们以销售公司为例的话, 
采购人员,可以需要一些与其有关的数据,而与他无关的数据,对他没 
有任何意义,我们可以根据这一实际情况,专门为采购人员创建一个视 
图,以后他在查询数据时,只需select   *   from   view_caigou   就可以啦。 

第二点:使用视图,可以简化数据操作。 

解释:我们在使用查询时,在很多时候我们要使用聚合函数,同时还要 
显示其它字段的信息,可能还会需要关联到其它表,这时写的语句可能 
会很长,如果这个动作频繁发生的话,我们可以创建视图,这以后,我 
们只需要select   *   from   view1就可以啦~,是不是很方便呀~ 

第三点:使用视图,基表中的数据就有了一定的安全性 

因为视图是虚拟的,物理上是不存在的,只是存储了数据的集合,我们可以 
将基表中重要的字段信息,可以不通过视图给用户,视图是动态的数据的集 
合,数据是随着基表的更新而更新。同时,用户对视图,不可以随意的更改 
和删除,可以保证数据的安全性。 

逻辑数据独立性。视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。

第四点:可以合并分离的数据,创建分区视图 
随着社会的发展,公司的业务量的不断的扩大,一个大公司,下属都设有很 
多的分公司,为了管理方便,我们需要统一表的结构,定期查看各公司业务 
情况,而分别看各个公司的数据很不方便,没有很好的可比性,如果将这些 
数据合并为一个表格里,就方便多啦,这时我们就可以使用union关键字, 
将各分公司的数据合并为一个视图。 

 

代码创建视图的语法:
create view  视图名字
as
查询代码
示例:
create view  view_user
as
select id from user
go
/*以上为创建一个视图,视图里面存储的是user表的ID列*/


删除视图的SQL语法
可以先检查有没有改视图
if exusts(select * from sysobjects where name='视图名字')/*如果数据库中存在这个视图,就删除该视图,查不查询随便你*/
drop view 视图名字  /*执行删除视图语法*/ 
示例:
drop view view_user  /*删除名为view_user的视图*/
---------------------------------------
查询视图:
select *[这里的*可以是指定的视图里面的列] from 视图名字
---------------------------------------
注意事项:
1.一个视图可以嵌套另一个视图,但最后不要超过3层
2.视图定义中的select语句不能包括下列内容
*order by排序子句,除非在select语句中带有一个top子句
*into关键字
*引用临时表或表变量