dreamhua 2020-02-14
对于一个重要的表,比如支付宝的用户表,它包含了账户余额,但是我并不希望下级开发人员能看到这个用户的余数字段,怎么办呢?
我就做了一个另一个表,只给出指定的几个字段,下级开发人员对这个表的增删改依然能作用到我原有的表上。
完美!
我做的这另一个表,就叫视图。
注意:视图的创建需要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 视图名