首先我们了解下什么是视图:
视图就是封装了一条复杂查询的语句,视图是一个虚表,最大的优点就是简化了复杂的查询(比如多表联查,我们可以把多张表整合到一个视图上面)。
换句话说,视图就是一张虚拟的表,本身不存放数据,数据来源于原始的表。
CREATE [OR REPLACE] VIEW 视图名
AS
SELECT查询 (需要查询的结果)
[WITH READ ONLY CONSTRAINT]
(设置是否可以对视图进行增删改查)
语法解析:
- OR REPLACE:如果视图已经存在,则替换旧视图。
- FORCE:即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用。
- WITH READ ONLY:默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作),WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。
- 创建视图
create or replace view emp_view as select * from emp;
或者指定数据列进行创建
select or replace view emp_view as select empno,ename,hiredate from emp; - 查询视图
select * from emp_view; - 修改视图中7369的名字为’smith’
update emp_view set ename = ‘smith’ where empno = 7369; - 删除视图
drop view emp_view; - 创建只读视图
create or replace view emp_view as select * from emp with read only;