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

    视图与表的区别:

    区别:1、视图是已经编译好的sql语句。而表不是
    2、视图没有实际的物理记录。而表有。
    3、表是内容,视图是窗口
    4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改
    5、表是内模式,试图是外模式
    6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
    7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
    8、视图的建立和删除只影响视图本身,不影响对应的基本表。

    联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系


    视图与sql语句的区别:

    视图只是一张虚表,只是逻辑上存在的一张表。你每次获取视图时,实际上还是需要数据库执行一边创建视图的搜索语句的。所以在执行效率上并没有任何好处。
    视图的好处就是在你做复杂的查询逻辑时可以简化你的思考过程,比如你有一个查询语句需要select a.a, a.b from (select x a, y b from t where ....) a where ......你可以把内部的select 语句变成view,这样整个语句会变成select v.a, v.b from v where .....对你思考查询逻辑有利。


    视图的好处,可以主要分为四点:

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

      解释:

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

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

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

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

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

      第四点:可以合并分离的数据,创建分区视图

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

      以上,就是我认为视图的作用,实际上很多公司都使用视图来查询数据的



    1. 为什么使用视图

        1) 提高数据的安全型,不同权限的用户可以查看数据的不同。

        2) 符合用户日常业务逻辑

    2. 什么是视图

        视图是一种查看数据库中一个或多个表中的数据的方法。

        视图是一种虚拟表。 通常是作为来自一个或多个表中的行或列的子集创建的,当然他也可以包含全部的行和列。

        视图并不是数据库中存储的数据值的集合,它的行和列来自查询中引用的表。在执行时,他直接显示来自表中的数据。

    3. 视图的作用

        筛选表中的行

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

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

    4. 如何创建视图

       方法一: 使用SSMS,选中数据库, 选择“视图”选项并右击,在弹出的快捷菜单中选择“新建视图项”, 添加药学查询的表, 选择希望查看到的列,保存视图。

       方法二: 使用语句创建,语法:

           create view view_name

                  as 

                       <select 语句>

    5. 视图语法整理:

       1) 创建视图  

       create view view_name

                  as 

                       <select 语句>

         2) 修改视图

       alter view view_name

                  as 

                       <select 语句>

           3)删除视图

         drop view view_name

            4)修改视图名称

            exec  sp_rename  view_oldname   view_newname

             5) 查看视图

             select  列名  from view_name

    6.  注意事项

          每个视图中可以使用多个表

          与查询相似,一个视图可以嵌套另一个视图,但最好不要超过3层。

          视图定义中  select 语句不能包括一下内容

                order by 字句,除非在select 语句的选择列中也有一个top字句

                into 关键字

                引用临时表或表变量

    7. 视图的优缺点

         优点: 简单、 安全、逻辑数据独立

         缺点: 性能,修改限制

               如果视图中存在函数或涉及复杂的多表查询,那么用户在查询视图的过程中会花费一定的时间。

               对于简单的视图可以使用update 语句更新,如果对于复杂的视图可能就不能使用了。删除亦是如此。所以对于视图的用法最好只停留到查询上面。

  • 相关阅读:
    任意指定一个key获取该key所处在哪个node节点
    记一次mysql的问题处理@20181225
    Vue 自定义校验规则
    Vue 渲染状态标签
    Vue Token拦截跳转
    vue 组件路由问题
    vue npm运行报错
    Vue复习(一)
    从客户端中检测到有潜在危险的 Request.Form
    EF Core for MySql踩坑(二)
  • 原文地址:https://www.cnblogs.com/lixuwu/p/5676123.html
Copyright © 2011-2022 走看看