zoukankan      html  css  js  c++  java
  • sql视图

    什么是视图
    
         大家都知道,我们国家现在“神七”上天了。从美国的月球登月开始,人类上天不再是神话。听说,在美国,你只要出几十万美元,您就可以上一次月球进行太空旅行,所以,我们相信:在不久的将来,上天旅行将走进我们百姓的生活,那是一件多么新鲜神奇的事情啊。好多美国人上天后,他们用望远镜观看我们的地球,结果看到的地球形状各不相同。有的说象绿色的橘子,有的说象白色的大鸭梨,有的说象蓝色的大西瓜。这是为什么呢?你肯定会说:那是因为从不同的角度(视角),看到的不同形状而已。那么,从不同的视角,将看到不同的“图形”,这就是我们马上讲到的视图。我们的学员信息也是如此:对于学员的信息和成绩,老师比较关心学员成绩以及是否参加考试,包括姓名、学号、笔试、机试、是否通过等。班主任则比较关心学生档案,包括姓名、学号、性别和年龄。
    
    其实,视图就是一张虚拟表,它表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上
    
    •          视图中并不存放数据,而是存放在视图所引用的原始表(基表)中
    
    •          同一张原始表,根据不同用户的不同需求,可以创建不同的视图
    
     
    
    视图的用途
    
    –         筛选表中的行
    
    –         防止未经许可的用户访问敏感数据
    
    –         降低数据库的复杂程度
    
    –         将多个物理数据库抽象为一个逻辑数据库
    
     
    
    使用视图可以给用户和开发人员带来很多好处。具体为:
    
    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 /*使用视图*/
    
     
    
    从一个或者多个表或视图中导出的虚拟表,其结构和数据是建立在对表的查询基础上的。
    
    理论上它可以像普通的物理表一样使用,例如增、删、改、查等,修改视图中的数据实际上是修改
    
    原始数据表。因为修改视图有许多限制,所以在实际开发中一般视图仅做查询使用。
  • 相关阅读:
    软件设计师2006年11月下午试题6(C++ 状态模式)
    Delphi中使用RegExpr单元进行匹配与替换操作
    正则表达式中贪婪与懒惰匹配
    C++类属性算法equal和mismatch
    lazarus下使用正则表达式
    正则表达式在每行开头插入行号
    STL向量构造函数
    软件设计师2004年5月下午试题6(C++ 数组下标检测)
    演示STL双端队列的push_back和push_front函数
    用正则表达式改小写为大写
  • 原文地址:https://www.cnblogs.com/xuxiaoshuan/p/3818168.html
Copyright © 2011-2022 走看看