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 语句更新,如果对于复杂的视图可能就不能使用了。删除亦是如此。所以对于视图的用法最好只停留到查询上面。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值