视图创建
创建视图的原因:
- 当只想把表中的一部分内容展示给另一个用户,则可以建立一个视图,视图表中的内容是父表中能展示的部分。
- 视图和父表可以联动,当父标的内容发生了改变,视图内容也会更着变化。
- 可以之间新建一张表,新表也可以取父标的一部分内容展示给用户,但是会存在问题,当父表内容产生改变,子表不会产生变化。
综上原因:使用视图展示一部分内容给其他用户是一种更好的选择。
子标
创建子表的方法:(会存在上诉第三点问题)
create table tb_emp_simple2
(
eno integer not null,
ename varchar(20) not null,
job varchar(20) not null,
primary key (eno)
);
insert tb_emp_simple2 select eno,ename,job from tb_emp;
将子标的权限给到用户
-- 删除用户
drop user 'pengdingming'@'%';
-- 创建新用户
create user 'pedingming'@'%' identified by '123Hl46&';
-- 将hrs库中tb_emp_simple2表的select权限给到pedingming
grant select on hrs.tb_emp_simple2 to 'pedingming'@'%';
父表为:tb_emp
建立出来的子标为:tb_emp_simple2
视图
创建视图的方法
create view vw_emp_simple2 as
select eno, ename ,job from tb_emp;
删除视图的方法:
-- 删除视图
drop view vw_emp_simple2;
将视图的权限给到用户
drop user 'pengdingming'@'%';
-- identified后面跟的是用户的密码
create user 'pengdingming'@'%' identified by '123Hcl456&';
grant show view on hrs.vw_emp_simple2 to 'pedingming'@'%';
grant select on hrs.vw_emp_simple2 to 'pedingming'@'%';
父表和前面的父表为同一个表
视图表为: