数据库视图

视图

视图是一种虚拟存在的表,你可以通过

create view 视图名 as (子查询);

视图的作用

1)简单:使用视图的用户不需要关心后面对应表的结构,关联,筛选条件,这是一个过滤好的符合条件的结果集。(重用子查询)
2)安全:使用一个视图的用户只能看到特定的行和列,这种权限限制是表权限管理无法做到的。(项目经理只想我们看到用户名,不想让我们看到密码,就基于用户表的查询,建立一个视图)
3)数据独立:一旦视图的结构确定,可以屏蔽表结构变化对视图的影响,原表增加列对于视图没有影响,但是修改列名,要修改视图,原表增删改数据,视图会自动更新。

视图的分类和限制

1)简单视图:创建视图的子查询不包含关联查询,查询字段不包含表达式,函数,不包含分组,没有去重。
2)复杂视图:子查询包含上述任意一条。
注:对视图的DML操作,只针对简单视图可用。
对视图的操作就是对基表的操作,操作不当就可能造成对基表的数据污染。
注:如果原表某列有约束,如果不满足约束,则不能操作。

视图的数据污染

在添加一条数据,在视图中没有显示,但是基表添加了,就是数据污染。
视图中的删除数据不会发生数据污染,其他操作都有可能发生数据污染。

如何避免数据污染

为视图添加一个检查约束,可以保证对视图的DML操作在视图中可见,否则不允许DML操作,这样就避免了对基表的数据污染。
语法:
    create view 视图名 as (子查询) 
    with check option;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容