微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLServer-视图

一般接触到视图,存储过程,触发器时,普遍感觉比较晕,其实他们没有那么难,就我的理解:

        视图:接触者都会遇到一个词那就是“视图是一张虚拟的表”,一提到虚拟,呵呵,本来清晰的东西也变得糊涂起来,其实,视图就是把SELECT语句取一个名称保存起来作为一个数据库对象使用。我们来看一个例子:

有学生信息表,学生成绩表,现在需要查询学生的成绩信息,需要在两张表中查询

SELECT 姓名=stuName,学号=stuInfo.stuNo,

       笔试成绩 =writtenExam,   机试成绩=labExam,

             平均分=(writtenExam+labExam)/2

                FROM stuInfo LEFT JOIN stuMarks

                      ON stuInfo.stuNo=stuMarks.stuNo

如果我们要在上面的例子中查询部分信息,如笔试成绩大于70分的学员姓名,成绩,我们可以这样写:

SELECT 姓名,笔试成绩 FROM

              (

                  SELECT 姓名=stuName,

                         笔试成绩 =writtenExam,

                         平均分=(writtenExam+labExam)/2

                   FROM stuInfo LEFT JOIN stuMarks

                                    ON stuInfo.stuNo=stuMarks.stuNo

              )   T

      Where 笔试成绩>70

其中T就是select语句结果的别名,方便期间,我们可以把T做成一个视图

    Create view T

    As

       SELECT 姓名=stuName,

             平均分=(writtenExam+labExam)/2

                FROM stuInfo LEFT JOIN stuMarks

                      ON stuInfo.stuNo=stuMarks.stuNo

   Go

   那么我们的结果就可以写成:

   SELECT 姓名,笔试成绩 FROM T where笔试成绩>70

   T 就是视图,T其实就是一个已经存储在数据库中的一条SELECT语句。当然,视图不单单是一条select语句,因为视图上可以支持数据操纵语句(DML),支持索引,至于视图的性能,不但易于开发,而且性能也好,毕竟是编译后的sql语句直接运行的,呵呵。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐