定义视图

select * from emp;

select empno,ename,job,mgr,sal from emp;效率更高,但复用时输入时比较麻烦

 

 

select * from emp join dept on emp.deptno=dept.deptno

解决方案:定义一个视图(建一个新表(虚拟))

create or replace view myview1         --or replace:创建或替换,针对以及有myview1视图时

as 

select * from emp join dept on emp.deptno=dept.deptno

 

select * from myview1;该查询即执行上句的查询语句

 

若执行show tables

myview1也会被查出来

 

视图也是可以添加数据的,且原表中也会有添加的数据

insert into myview1(ename,job) values("zs","HH");

但视图创建条件select语句有条件查询如where deptno=10,添加的数据在myview1视图中查询不到,在原表emp中能查询到。

解决这种问题:

create or replace view myview1         

as 

select * from emp join dept on emp.deptno=dept.deptno

with check option

则不符合条件的添加会添加失败

 

 

删除视图

drop view myview1

posted @ 2023-05-30 19:55  XieLumeng  阅读(27)  评论(0编辑  收藏  举报