码迷,mamicode.com
首页 > 数据库 > 详细

23 SQL语言——视图 VIEW

时间:2020-02-14 16:57:24      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:pre   权限   报错   into   账户   tab   模式   upd   set   

理解视图

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

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

完美!

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

视图特点

  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

标签:pre   权限   报错   into   账户   tab   模式   upd   set   

原文地址:https://www.cnblogs.com/Scorpicat/p/12307619.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!