视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
视图是oracle又一种数据对象,视图的主要的用处是简化操作,提高案例,满足不同用户的查询需求,视图不是一个真正存在的物理表,它是根据别的表动态生成的。
创建视图基本语法:
create view 视图名 as select语句 [with read only]
特别说明:with read only如果带上的话,只能查询,不能改写。
创建或修改视图基本语法:
create op replace view 视图名 as select语句 [with read only]
特别说明:with read only如果带上的话,只能查询,不能改写。
删除视图基本语法:
drop view 视图名;
案例:创建和emp表(empno,ename,job)完全一致的视图,看看带with read only和不带的区别。
注意:当表结构过于复杂时,请使用视图。
create or replace view empview as select empno,ename,job from emp;
视图可以简化操作(可以将多表中的字段合并在一张视图中)
例:我们希望查询雇员的名字和部门编号和部门名称
create or replace view empdeptview as select e.ename,e.deptno,d.dname from emp e,dept d where e.deptno=d.deptno with read only;
视图与表的区别
1、表需要占用磁盘空间,而视图不需要;
2、视图不能添加索引;
3、使用视图可以简化复杂查询;
4、使用视图利于提高安全性。