关于数据库视图作用、更新视图的理解

一、什么是视图

概念:视图是从一个或几个基本表(视图)导出的表。
个人理解:从创建的SQL的语句来看,语句中通常包含SELECT语句。所以视图一定是基于表产生的,基于存在的视图生成的视图,其基础依然是基本表。

二、视图的作用

1、简化用户的操作。
在数据库开发的过程中,往往有一些业务需要很复杂的查询才能满足,而视图最直接的效果是,可以将复杂的查询“包装”成一个简单的查询,类似于编程中的方法调用。如:一个业务查询需要多表连接查询,同时还需要使用判断语句,那么一个查询语句可能就会有几百个字符。几百个字符的select语句写在应用程序,或配置文件中往往是不便维护的。为了解决这个问题可以由数据库开发人员编写视图,从而将复杂的查询语句简化为一个普通的“单表查询”。这样的select语句在应用程序中就很好维护。
2、一定程度上减少了应用程序和数据库表之间的耦合性。
在视图中在字段名后加上别名后,可以实现在数据库基本表的表结构变化后,应用程序中查询视图取数据的语句则不必修改。
3、一定程度上屏蔽了表结构等敏感信息。
在数据库中可以将视图查询权限赋予有关用户,而基本表的查询权限就可以不赋予上述用户。在数据库管理系统中,这起到一个一定的隐藏敏感信息的作用。
4、使不同用户从不同角度使用同一份数据。
一个基础表中含有较多信息时,基于同一个基础表的表格可以产生多个视图,不同的视图具有不同的业务意义。从而使得不同用户从不同角度使用同一份数据。

三、更新视图

这里说的更新视图指DML操作,即update,delete,insert。不是更新视图的定义。一般情况下,基于一个基本表的视图是可更新的。
1、只读视图
如果不希望用户通过视图修改数据,可以不给用户赋予该视图的update,delete,insert的权限。也可以在创建视图时使用with read only设置只读属性。两种方式的选取因业务而异。
2、其他不可更新视图的情况
(1)视图基于多表导出。
(2)视图语句中字段是由字段表达式生成的。
(3)视图语句中出现聚合函数。
(4)视图语句中含group by,distinct等语句。
(5)视图语句中含有嵌套查询。

  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值