Oracle(二)--> 视图详解(多图高清加叨叨,还怕懂不了?)

一、什么是视图。

1、视图是一种虚表;

2、视图建立在已有表的基础上,视图来一建立的这些表称为基表;

3、向视图提供数据内容的语句为 SELECT 语句,可以将视图理解为存储起来的 SELECT语句;

4、视图向用户提供基表数据的另一种表现形式。

二、为什么使用视图

1、提供了另外一种级别的表的安全性(控制数据访问:不想让每个人都看到)

2、隐藏了数据的复杂性

3、简化了用户的 SQL 命令

4、隔离基表结构的改变

5、通过重命名列,从另一个角度提供数据

6、避免重复访问相同的数据

三、为视图赋予权限

更换到 system 账户(system / admin),然后在页面中输入命令:

    grand create any view to scott;

即可创建视图权限成功。

创建视图的命令(为 user_view 表添加数据):

创建成功

修改视图的数据

命令格式为 update 表名 set 列名 where ...

重新查询视图和表时,会发现两边的数据均做了更改(比较简略的表 =。=)

说明:对视图的修改会影响表,即不同权限的人不仅可以查看符合自己权限的数据,也可以进行更改,而且主表数据也会被更改。

简化查询

通过多表连接将数据添加到视图,则此视图将拥有两个表符合条件的数据,从而在每次增删改查信息的时候可以直接对视图表进行操作,而不必每次通过多表连接来实现。使得查询等变得简单,简化SQL。

修改视图

如果需要对 empview2 表的数据进行修改,可以使用命令:

create or replace view empview2。

如果仍使用 create view empview2 会报错:名称以由现有对象使用。

屏蔽 DML 操作

当用户仅有查看权限,无操作数据库权限时,可以为其添加一个命令:

with read only

来进行屏蔽 DML 操作。

四、简单视图和复杂视图

区别:有没有用到分组函数。

复杂视图例:

查询得出符合条件的数据:

视图中使用 DML 的规定

1、可以在简单视图中执行 DML 操作

2、当视图定义中出现以下元素之一时不能使用 delete:

---组函数

---group by 子句

---distinct 关键字

---rownum 伪列

五、TOP - N 分析

1、根据 rownum 查询工资前八名的员工 id、工资、姓名

如果通过 rownum 进行中间值查询时,会无数据返回

原因:对 rownum 只能使用 < 或 <= , 而用 =, >, >= 都不能返回任何数据。

那该如何实现一个类似分页的功能呢?如何查找指定范围内的数据?

分析:此时伪列是不可以被使用的,但是如果将伪列变为真实存在的列然后再进行查询便可以得出想要的数据了。

将 rownum 命名为 rn ,在最外层的 sql 语句中查询 rn(防止与本层 rownum 冲突),然后再加上 rn 的条件即可查询。结果如下:

其他

显示视图的结构:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-08 23:06:30

Oracle(二)--> 视图详解(多图高清加叨叨,还怕懂不了?)的相关文章

ORACLE物化视图详解

一.物化的一般用法物化视图是一种特殊的物理表,"物化"(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,oracle都实际上转换为视图SQL语句的查询.这样对整体查询性能的提高,并没有实质上的好处. 1.物化视图的类型ON DEMAND.ON COMMIT.二者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图"需要"被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一

oracle HA 高可用性详解(之二,深入解析TAF,以及HA框架)

oracle HA 高可用性详解(之一,client.server端服务详解):http://write.blog.csdn.net/postedit 我们已经看到TAF是的Oracle的会话能够自动重新连接,需要说明的是,这个能力是基于OCI的,是OCI的一个功能,JDBC Thin Driver无效,因为这种驱动不是构建在OCI库上的. 虽然这个功能发起于RAC,但TAF并不局限于RAC,单实例.DG环境都可以享受这个好处.Oralce声称其TAF能够保证用户会话自动的转移到另一个实例上.这

Oracle 11g数据库详解(2015-1-18更新)

Oracle 11g数据库详解 整理者:高压锅 QQ:280604597 Email:[email protected] 大家有什么不明白的地方,或者想要详细了解的地方可以联系我,我会认真回复的 1   简介 数据库操作主要有以下几步: 1.  启动.停止数据库 2.  连接.断开数据库 3.  创建.修改.删除数据库用户 4.  表空间 5.  新建.修改.删除表 6.  查询.插入.修改.删除表数据 7.  新建.修改.删除视图 8.  新建.修改.删除存储过程 9.  新建.修改.删除触发

Oracle 11g数据库详解(2015-02-28更新)

Oracle 11g数据库详解 整理者:高压锅 QQ:280604597 Email:[email protected] 大家有什么不明白的地方,或者想要详细了解的地方可以联系我,我会认真回复的 1   简介 数据库操作主要有以下几步: 1.  启动.停止数据库 2.  连接.断开数据库 3.  创建.修改.删除数据库用户 4.  表空间 5.  新建.修改.删除表 6.  查询.插入.修改.删除表数据 7.  新建.修改.删除视图 8.  新建.修改.删除存储过程 9.  新建.修改.删除触发

ORACLE数据库备份与恢复详解

ORACLE数据库备份与恢复详解 学习过程中的总结,有兴趣不妨看看,如果有不对的地方,高手不要留情!! Oracle的备份与恢复有三种标准的模式,大致分为两 大类,备份恢复(物理上的)以及导入导出(逻辑上的),而备份恢复又可以根据数据库的工作模式分为非归档模式(Nonarchivelog-style) 和归档模式(Archivelog-style),通常,我们把非归档模式称为冷备份,而相应的把归档模式称为热备份,他们的关系如下所示 三种方式各有优点,我们做个比较(这个是用Fireworks画的,

Oracle cursor_sharing 参数 详解

一. 官网的说明 http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/initparams042.htm#REFRN10025 1.1 CURSOR_SHARING Property Description Parameter type String Syntax CURSOR_SHARING = { SIMILAR | EXACT | FORCE } Default value EXACT Modifiable ALTE

Oracle执行计划详解

 简介: 本文全面详细介绍oracle执行计划的相关的概念,访问数据的存取方法,表之间的连接等内容. 并有总结和概述,便于理解与记忆! +++ 目录 --- 一.相关的概念 Rowid的概念 Recursive Sql概念 Predicate(谓词) DRiving Table(驱动表) Probed Table(被探查表) 组合索引(concatenated index) 可选择性(selectivity) 二.oracle访问数据的存取方法 1) 全表扫描(Full Table Scan

创建物化视图详解(图解)

创建物化视图详解 一,什么是物化视图 物化视图是包括一个查询结果的数据库对象,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表.物化视图存储基于远程表的数据,也可以称为快照. 二,作用. 在类似统计功能中,查询操作是无可避免,而这些查询操作如果很频繁,对整体数据库性能是很致命的.而物化视图实现远程数据源与本地数据的实时同步,也就是定时刷新,通过在本地创建物化视图可以大大提高查询效率. 三,流程图: 当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库

iOS 开发之照片框架详解之二 —— PhotoKit 详解(下)

这里接着前文<iOS 开发之照片框架详解之二 —— PhotoKit 详解(上)>,主要是干货环节,列举了如何基于 PhotoKit 与 AlAssetLibrary 封装出通用的方法. 三. 常用方法的封装 虽然 PhotoKit 的功能强大很多,但基于兼容 iOS 8.0 以下版本的考虑,暂时可能仍无法抛弃 ALAssetLibrary,这时候一个比较好的方案是基于 ALAssetLibrary 和 PhotoKit 封装出一系列模拟系统 Asset 类的自定义类,然后在其中封装好兼容 A