Oracle视图(View)创建使用

Oracle对象教程:视图(View)创建使用,视图(View)实际上是一张或者多张表上的预定义查询,这些表称为基表。从视图中查询信息与从表中查询信息的方法完全相同。只需要简单的SELECT…FROM即可。

视图具有以下优点:

1. 可以限制用户只能通过视图检索数据。这样就可以对最终用户屏蔽建表时底层的基表。

2. 可以将复杂的查询保存为视图。可以对最终用户屏蔽一定的复杂性。

3. 限制某个视图只能访问基表中的部分列或者部分行的特定数据。这样可以实现一定的安全性。

4. 从多张基表中按一定的业务逻辑抽出用户关心的部分,形成一张虚拟表。

语法结构:创建视图

CREATE [OR REPLACE] [{FORCE|NOFORCE}] VIEW view_name

AS

SELECT查询

[WITH READ ONLY CONSTRAINT]

语法解析:

1. OR REPLACE:如果视图已经存在,则替换旧视图。

2. FORCE:即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用。

3. NOFORCE:如果基表不存在,无法创建视图,该项是默认选项。

4. WITH READ ONLY:默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作),WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。

案例3:基于EMP表和DEPT表创建视图

代码演示:视图

SQL> CREATE OR REPLACE VIEW EMPDETAIL

  2  AS

  3  SELECT EMPNO,ENAME,JOB,HIREDATE,EMP.DEPTNO,DNAME

  4  FROM EMP JOIN DEPT ON EMP.DEPTNO=DEPT.DEPTNO

  5  WITH READ ONLY

  6  /

 

VIEW CREATED

 

SQL> SELECT * FROM EMPDETAIL;  ①

 EMPNO

ENAME

JOB

HIREDATE

DEPTNO

DNAME

7369

SMITH

CLERK

17-12月-80

20

RESEARCH

7499

ALLEN

SALESMAN

20-2月 -81

30

SALES

7521

WARD

SALESMAN

22-2月 -81

30

SALES

7566

JONES

MANAGER

02-4月 -81

20

RESEARCH

7654

MARTIN

SALESMAN

28-9月 -81

30

SALES

7698

BLAKE

MANAGER

01-5月 -81

30

SALES

7782

CLARK

MANAGER

09-6月 -81

10

ACCOUNTING

7788

SCOTT

ANALYST

19-4月 -87

20

RESEARCH

7839

KING

PRESIDENT

17-11月-81

10

ACCOUNTING

7844

TURNER

SALESMAN

08-9月 -81

30

SALES

7876

ADAMS

CLERK

23-5月 -87

20

RESEARCH

7900

JAMES

CLERK

03-12月-81

30

SALES

7902

FORD

ANALYST

03-12月-81

20

RESEARCH

7934

MILLER

CLERK

23-1月 -82

10

ACCOUNTING

14 ROWS SELECTED

代码解析:

① 对视图可以像表一样进行查询。该视图中隐藏了员工的工资。

删除视图可以使用“DROP VIEW 视图名称”,删除视图不会影响基表的数据。

来源:CUUG官网

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 数据库中,物理视图是一个基于表或者其他物理视图的查询结果集,它以虚拟表的形式存在,并且提供了对数据的访问和操作。创建物理视图是为了方便用户在访问数据时能够一次性获取多个表或者视图的数据。下面是创建 Oracle 物理视图的实例。 首先,我们需要登录到 Oracle 数据库。 接下来,我们使用 CREATE VIEW 语句来创建物理视图。这里我们需要指定视图的名称以及定义视图所基于的查询语句。例如,我们可以创建一个名为 EMPLOYEES_VIEW视图,它基于 EMPLOYEES 表和 DEPARTMENTS 表的联接查询: CREATE VIEW EMPLOYEES_VIEW AS SELECT e.EMPLOYEE_ID, e.FIRST_NAME, e.LAST_NAME, d.DEPARTMENT_NAME FROM EMPLOYEES e JOIN DEPARTMENTS d ON e.DEPARTMENT_ID = d.DEPARTMENT_ID; 在创建物理视图时,我们可以选择使用 WITH CHECK OPTION 子句来限制对视图的修改操作。这样,只有满足视图定义条件的数据才能被插入、更新或删除。例如: CREATE VIEW EMPLOYEES_SALARY_VIEW AS SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES WHERE SALARY > 5000 WITH CHECK OPTION; 最后,创建物理视图后,我们就可以使用视图来查询数据。例如,可以使用以下 SELECT 语句从 EMPLOYEES_VIEW 视图中获取数据: SELECT * FROM EMPLOYEES_VIEW; 总结起来,创建 Oracle 物理视图的过程包括登录到数据库、使用 CREATE VIEW 语句定义视图的名称和查询语句,可以选择使用 WITH CHECK OPTION 子句限制对视图的修改操作,并且可以使用创建好的视图来查询数据。物理视图创建可以大大简化查询过程,提高数据访问的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值