MySQL数据库之视图(4)

create view view_03 as select e1.empno bianhao, e1.ename xingming, e1.job zhiwei, e1.mgr lindaobianhao, e2.ename lindaoxingming,
d.dname bumenmingchen, d.loc bumenweizhi
from emp e1 , emp e2 , dept d where e1.mgr=e2.empno and e1.deptno=d.deptno ;

  对刚建立的view_03视图进行查询:

select * from view_03 ;

  查询结果如下:

MySQL数据库之视图

  可以发现,在select中指定别名与在view视图中指定别名效果是一样的。

4 查看视图

  (1)查看视图基本信息:describe 视图名;

查看上一章节创建的视图view_03的基本信息:

describe view_03 ;

MySQL数据库之视图

  describe一般情况下都写成desc,两者是完全等效的。

另外还可以通过“show create view 视图名;”来查看视图详细信息。

  (2)查看所有视图

  在MySQL中,information_schema数据库下的views表中存储了所有视图的定义,通过对views表的查询,可以查看数据库中说哟视图的详细信息,查询语句如下:

select * FROM information_schema.views ;

  部分查询结果如下所示:

5 修改视图

  (1)使用create or replace view语句修改视图

  create or replace view语句从字面上也可以理解:既可以创建视图,也可以修改视图(存在的话就修改,不存在就创建)。create or replace view语句的语法结构与创建视图的create语句语法结构是完全一样的。

  修改上文中创建的视图view_01,添加一个部门编号字段(deptno):

create or replace view view_02 (bianhao , xinmin , zhiwei , guyongriqi , yuexin , bumenbiaohao) as select empno , ename , job , hiredate , sal ,
deptno from emp;

  再次查询view_02,发现确实多了部门编号这一列:

select * from view_02 ;

MySQL数据库之视图

  (2)使用alter语句修改视图

  alter语句是MySQL提供的另一种修改视图的方法,其语法结果与create or replace语句也是基本一样的。

  继续修改视图view_02,添加一个奖金字段(comm):

alter view view_02 (bianhao , xinmin , zhiwei , guyongriqi , yuexin , bumenbiaohao , jiangjin) as select empno , ename , job , hiredate , sal ,
deptno , comm from emp;

查看view_01视图:

MySQL数据库之视图

  alter语句与create orreplace语句的区别是当视图不存在是,alter语句会报错。

6 更新视图

  更新视图是指通过视图来插入、更新、删除表中的数据,因为视图是一个虚拟表,其中是没有数据的。通过视图更新的时候都是转到真实表上进行的。对视图的更新操作也包括update、insert和delete。

(1)update

通过视图将员工编号为7369的员工月薪改为1000,在更新前,其数据为:

select * from view_02 where bianhao=7369;

  用update语句进行更新

update view_02 set yuexin=1000 where bianhao=7369;

  再次通过视图查看数据,发现数据确实已更新:

  

再看看真实表中数据有没有更新:

select * from emp where empno=7369;

可以看出,真实表中的数据也一起更新了,说明对视图的更新操作本质上是对真实表的更新。

(2)insert

  先创建一个视图view_04,该视图结果与emp表一样:

create view view_04 as select * from emp ;

  使用insert语句向view_04视图中插入一条数据:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c5ea312ee5f800234a7966e89b597226.html