设为首页 收藏本站
查看: 1244|回复: 0

[经验分享] SQL Server创建视图

[复制链接]

尚未签到

发表于 2016-10-30 09:57:53 | 显示全部楼层 |阅读模式
  什么是视图
  大家都知道,我们国家现在“神七”上天了。从美国的月球登月开始,人类上天不再是神话。听说,在美国,你只要出几十万美元,您就可以上一次月球进行太空旅行,所以,我们相信:在不久的将来,上天旅行将走进我们百姓的生活,那是一件多么新鲜神奇的事情啊。好多美国人上天后,他们用望远镜观看我们的地球,结果看到的地球形状各不相同。有的说象绿色的橘子,有的说象白色的大鸭梨,有的说象蓝色的大西瓜。这是为什么呢?你肯定会说:那是因为从不同的角度(视角),看到的不同形状而已。那么,从不同的视角,将看到不同的“图形”,这就是我们马上讲到的视图。我们的学员信息也是如此:对于学员的信息和成绩,老师比较关心学员成绩以及是否参加考试,包括姓名、学号、笔试、机试、是否通过等。班主任则比较关心学生档案,包括姓名、学号、性别和年龄。
  其实,视图就是一张虚拟表,它表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上
  ·          视图中并不存放数据,而是存放在视图所引用的原始表(基表)中
  ·          同一张原始表,根据不同用户的不同需求,可以创建不同的视图
  
  视图的用途
  –         筛选表中的行
  –         防止未经许可的用户访问敏感数据
  –         降低数据库的复杂程度
  –         将多个物理数据库抽象为一个逻辑数据库
  
  使用视图可以给用户和开发人员带来很多好处。具体为:
  1.对最终用户的好处
  (1)结果更容易理解
  创建视图时,可以将列名改为有意义的名称,使用户更容易理解列所代表的内容。在视图中修改列名不会影响基表的列名。
  (2)获得数据更容易
  很多人对SQL不太了解,因此对他们来说创建对多个表的复杂查询很困难。可以通过创建视图来方便用户访问多个表中的数据。
  
  2.对开发人员的好处
  (1)限制数据检索更容易
  开发人员有时需要隐藏某些行或列中的信息。通过使用视图,用户可以灵活地访问他们需要的数据,同时保证同一个表或其他表中的其他数据的安全性。要实现这一目标,可以在创建视图时将要对用户保密的列排除在外。
  (2)维护应用程序更方便
  调试视图比调试查询更容易。跟踪视图中过程的各个步骤中的错误更为容易,这是因为所有的步骤都是视图的组成部分。
  
  如何创建视图
  ·          使用T-SQL语句创建视图的语法
  CREATE VIEW view_name 
  AS
  <select语句>
  IF EXISTS (SELECT * FROM sysobjects WHERE /*检测是否存在*/
  name = 'view_stuInfo_stuMarks')
  DROP VIEW view_stuInfo_stuMarks /*删除视图*/
  GO
  CREATE VIEW view_stuInfo_stuMarks /*创建视图*/
  AS
  SELECT 姓名=stuName,学号=stuInfo.stuNo,
  笔试成绩 =writtenExam,  机试成绩=labExam,
  平均分=(writtenExam+labExam)/2
  FROM stuInfo LEFT JOIN stuMarks
  ON stuInfo.stuNo=stuMarks.stuNo
  GO
  SELECT * FROM view_stuInfo_stuMarks /*使用视图*/
  
  从一个或者多个表或视图中导出的虚拟表,其结构和数据是建立在对表的查询基础上的。
  理论上它可以像普通的物理表一样使用,例如增、删、改、查等,修改视图中的数据实际上是修改
  原始数据表。因为修改视图有许多限制,所以在实际开发中一般视图仅做查询使用。
  
  本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lenotang/archive/2008/11/18/3329550.aspx

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-293260-1-1.html 上篇帖子: SQL Server创建触发器 下篇帖子: SQL Server数据类型表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表