定义视图
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