23 SQL语言——视图 VIEW

Posted Scorpicat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了23 SQL语言——视图 VIEW相关的知识,希望对你有一定的参考价值。

理解视图

对于一个重要的表,比如支付宝的用户表,它包含了账户余额,但是我并不希望下级开发人员能看到这个用户的余数字段,怎么办呢?

我就做了一个另一个表,只给出指定的几个字段,下级开发人员对这个表的增删改依然能作用到我原有的表上。

完美!

我做的这另一个表,就叫视图。

视图特点

  1. 保护真实表,隐藏重要字段的数据,保护数据
  2. 在视图中的操作会映射到真实表中
  3. 可以手动开启只读模式

注意:视图的创建需要dba权限。也就是说,只有管理员才能创建视图。

视图的创建和删除

注意:有dba权限的用户才能创建视图

创建

--创建一个表tb
create table tb(
c1 varchar(100),
c2 varchar(100),
c3 varchar(100),
c4 varchar(100)
)
select * from tb

insert into tb values(‘值1‘,‘值2‘,‘值3‘,‘值4‘)
--创建一个给定字段的视图tb_v1

create view tb_v1 as select c1,c2,c4 from tb;

select * from tb_v1
       --可对给定字段正常增删改查

insert into tb_v1 values(‘值1‘,‘值2‘,‘值4‘)

select * from tb_v1;

select * from tb
        --但不能对视图没有的字段(原表中有单没给视图的字段)进行操作

update tb_v1 set c3 = ‘新值3‘ --报错

--创建一个只读视图tb_v2

create view tb_v2 as select c1,c2,c3 from tb with read only;
       --可查

select * from tb_v2
       --不可增删改
insert into tb_v2 values(‘值1‘,‘值2‘,‘值3‘)
delete from tb_v2

update tb_v2 set c1 = ‘新值1‘

  

删除

drop view 视图名

 

以上是关于23 SQL语言——视图 VIEW的主要内容,如果未能解决你的问题,请参考以下文章

如何将 View 类中的代码片段移动到 OnAppearing() 方法?

odoo 基于SQL View视图的model类

Drupal 6 视图 2:PHP 片段

片段内的视图坐标始终为空

Recyclerview 滚动在嵌套滚动视图中的片段中不起作用

共享转换片段到片段不起作用