oracle的视图如何使用,Oracle 视图讲解及使用实例

Oracle之视图

2018.9.12

由于视图的数据与表数据互相关联,所以切记谨慎操作

建立视图

使用下面sql语句来完成视图的创建

create or replace view 视图名

as

select 视图需要的字段 from 视图对应的表

[with read only]

With read only : 加上之后视图只可读 不加可做修改

视图权限相关

由于实际应用中不可能给用户所有表和视图的所有操作权限,所以需要设置特定的用户权限(需要本地拥有较高的权限等级)

管理员配置

首先使用sql新建用户

create user 用户名 identified by 密码

然后使用

1e5182cbb2f16753fb5df990d3625960.png

权限名:权限分为很多种 可以输入all 代表全部权限

还有要使用

grant create session to 用户名

来允许用户访问数据库

用户设置

由于我们已经赋予了查询权限所以直接通过sql查询

select * from 管理员名.视图名

注:需要查看是哪个管理员分配的该权限

然后通过管理员名.视图名才能查到内容

66de85008e0720a836c3ac93c52cc357.png

优化

我们刚才已经完成了赋予用户查询单张视图的过程,

但出于安全和用户体验的考虑,我们希望优化下查询过程

可以让用户直接查询视图,而不是查询管理员.视图名

这时候我们可以使用oracle自带的同义词来解决问题

同义词优化查询过程

首先需要赋予当前用户创建同义词的权限

grant create synonym to 用户名

然后登录用户 创建同义词 指向之前的管理员名.视图名

create synonym 同义词名 for 之前的管理员名.视图名;

88c13f0a0c464a8cb1ee12269d10e15a.png

建议使用原视图名作为同义词名来提高视图的安全性.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值