MySQL的视图

一:介绍

视图(view)是一个虚拟表,非真实存在,其本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需要视图名称即可获取结果集,并可以将其当作表来使用。

数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。

使用视图查询数据时,数据库系统会从原来的表中取出对应的数据,因此,视图中的数据是依赖于原来的表中的数据的,一旦表中的数据发生改变,显示在视图中的数据也会发生改变

二:作用

简化代码,可以把重复使用的查询封装成视图重复使用,同时可以使复杂的查询易于理解和使用。

安全原因,如果一张表中有很多数据,很多信息不希望让所有人看到,此时可以使用视图,如:社会保险基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资数等,可以对不同的用户,设定不同的视图。

三:视图的创建

MySQL的视图_第1张图片

-- 视图
create or replace view view1_emp
as
select ename,job from emp;
-- 视图创建完成,此时select ename,job from emp就是view1_emp,就是一张表

-- 查看表和视图
show tables;
show full tables;

select * from view1_emp;   -- view1_emp作为一张表用来查询,会根据原表变化而变化

 四:修改视图

修改视图是指修改数据库中已存在的表的定义,当基本表的某些字段发生改变时,可以通过修改视图来保持视图和基本表之间一致。MySQL中通过create or replace view 语句和alter view语句来修改视图。

MySQL的视图_第2张图片

五:更新视图

MySQL的视图_第3张图片

create or replace view view1_emp
as
select ename,job from emp;

select * from view1_emp;

update view1_emp set ename = '周瑜'where ename = '鲁肃';
-- 修改成功相当于修改原表中的数据
insert into view1_emp values('孙权','文员');
-- 插入失败,只有姓名和官职两个,其他的没有说明,无默认值

六:其他操作

MySQL的视图_第4张图片 

你可能感兴趣的:(mysql,oracle,数据库)