视图是一种虚拟表,本身不保存数据,而是从表中取得数据,可以理解为表的映射,或更简单的理解为一个查询结果。
例子:
Select empno,ename,sal from emp where sal>(select avg(sal) from emp);
把这个语句定义为视图,并从视图中查询数据
创建视图:
Create or replace view 视图名 as select 语句 with read only —是否只读 WIth check option --是否执行约束检查
只读权限授予:
grant select on 视图名称 to 用户名;
只读权限撤消:
revoke select on 视图名称 from 用户名;
删除视图:
drop view 视图名称;
有的时候,我们创建视图时的表可能不存在,但是以后可能会存在,我们如果此时需要创建这样的视图,需要添加FORCE选项
create or replace force view homework
as select * from student;
创建多表连接的视图时需要注意连接的列名称不可以一致,否则会报错以下内容:
修改过后: