在创建和使用视图(View)之前,首先要搞明白视图的概念。视图是基于一个表、多个表或视图的逻辑表,视图本身是不包含数据的,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表,在Oracle的数据库中,对象分为五种:表、视图、序列、索引和同义词。 视图是其实就是一条select语句。通过创建视图可以提取数据的逻辑上的集合或组合,方便数据展示。
如何创建Oracle视图
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name [(alias[, alias]...)] AS subquery [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY]
让我们分析一下上面的语法:
OR REPLACE:若所创建的试图已经存在,则替换旧视图。
FORCE:不管基表是否存在,ORACLE都会自动创建该视图(即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用)。
NOFORCE:如果基表不存在,无法创建视图,该项是默认选项(只有基表都存在ORACLE才会创建该视图)。
alias:为视图产生的列定义的别名。
subquery:一条完整的SELECT语句,可以在该语句中定义别名。
WITH CHECK OPTION:插入或修改的数据行必须满足视图定义的约束。
WITH READ ONLY:默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作),WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。
举个例子:
CREATE OR REPLACE VIEW NCPDETAIL AS SELECT NCNO,ENAME,JOB,HIREDATE,NC.DEPTNO,DNAME FROM NC JOIN DEPT ON NC.DEPTNO=DEPT.DEPTNO WITH READ ONLY
删除Oracle视图
删除视图比较简单,可以使用“DROP VIEW 视图名称”,删除视图不会影响基表的数据。只有视图所有者和具备DROP VIEW权限的用户可以删除视图。
修改Oracle视图
通过OR REPLACE 重新创建同名视图即可,参照上面创建视图的语法。
有问题可在下方评论留言,或关注“大超小志”微信公众号留言。
留言评论
如需留言或评论,请在微信中打开此页面。