SQL创建视图

2 篇文章 0 订阅
0 篇文章 0 订阅

1、视图的理解

从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据 。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表 。从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表 一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。

 

2、视图的用途

 

–          筛选表中的行

–          防止未经许可的用户访问敏感数据

–          降低数据库的复杂程度

–          将多个物理数据库抽象为一个逻辑数据库

 

使用视图可以给用户和开发人员带来很多好处。具体为:

A. 对最终用户的好处

 1 )结果更容易理解

创建视图时,可以将列名改为有意义的名称,使用户更容易理解列所代表的内容。在视图中修改列名不会影响基表的列名。

 2 )获得数据更容易

很多人对 SQL 不太了解,因此对他们来说创建对多个表的复杂查询很困难。可以通过创建视图来方便用户访问多个表中的数据。

 

B. 对开发人员的好处

 1 )限制数据检索更容易

开发人员有时需要隐藏某些行或列中的信息。通过使用视图,用户可以灵活地访问他们需要的数据,同时保证同一个表或其他表中的其他数据的安全性。要实现这一目标,可以在创建视图时将要对用户保密的列排除在外。

 2 )维护应用程序更方便

      调试视图比调试查询更容易。跟踪视图中过程的各个步骤中的错误更为容易,这是因为所有的步骤都是视图的组成部分


3、 如何创建使用视图

 

 

•           使用 T-SQL 语句创建视图的语法

[javascript]  view plain  copy
  1. CREATE VIEW view_name   
  2.    AS  
  3.     <select语句>  
  4. IF EXISTS (SELECT * FROM sysobjects WHERE /*检测是否存在*/  
  5.                          name = 'view_stuInfo_stuMarks')  
  6.      DROP VIEW view_stuInfo_stuMarks /*删除视图*/  
  7. GO  
  8. CREATE VIEW view_stuInfo_stuMarks /*创建视图*/  
  9.   AS  
  10.     SELECT 姓名=stuName,学号=stuInfo.stuNo,  
  11.       笔试成绩 =writtenExam,  机试成绩=labExam,  
  12.             平均分=(writtenExam+labExam)/2  
  13.                FROM stuInfo LEFT JOIN stuMarks  
  14.                      ON stuInfo.stuNo=stuMarks.stuNo  
  15. GO  
  16. SELECT * FROM view_stuInfo_stuMarks /*使用视图*/  
 

 

从一个或者多个表或视图中导出的虚拟表,其结构和数据是建立在对表的查询基础上的。

理论上它可以像普通的物理表一样使用,例如增、删、改、查等,修改视图中的数据实际上是修改

原始数据表。因为修改视图有许多限制,所以在实际开发中一般视图仅做查询使用。

4、

自己使用的小例子: 




[c-sharp] view plain copy
  1. use Power  
  2. GO  
  3. create view Test  
  4. as  
  5. select b.id as lineareaid,b.qymc as qymc,a.lineyear_month as lineyear_month from Linearea as b inner join LineLoss as a on a.lineareaid=b.id   
  6. union all   
  7. select b.id as lineareaid,b.qymc as qymc,c.lineyear_month as lineyear_month from Linearea as b inner join LineData as c on c.lineareaid=b.id  
  8. =====================================================  
  9. 在SQL语句只直接使用视图和普通表一样使用:  
  10. select * from Test  
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值