Oracle 11g系列:视图
视图是数据库中特有的对象,视图用于存储查询,但不会存储数据(物化视图除外)。这是视图和数据表的重要区别。Oracle中有4种视图:关系视图、内嵌视图、对象视图和物化视图。
1、关系视图
1>、创建视图
CREATE VIEW VW_EMPLOYEE
AS
SELECT EMP_ID,EMP_NAME FROM EMPLOYEES
2>、查看视图定义
SELECT TEXT FROM USER_VIEWS WHERE VIEW_NAME = 'VW_EMPLOYEE'
3>、查看视图内容
SELECT * FROM VW_EMPLOYEE
4>、修改视图
CREATE OR REPLACE VIEW VW_EMPLOYEE
AS
SELECT EMP_ID,EMP_NAME FROM EMPLOYEES
5>、删除视图
DROP VIEW VW_EMPLOYEE
6>、编译视图
ALTER VIEW VW_EMPLOYEE COMPILE
2、内嵌视图
内嵌视图也是视图,只是不会使用CREATE VIEW进行显示创建。一般情况下,被嵌套在查询语句中使用,因此称为内嵌视图。其功能类似于子查询。
SELECT * FROM ( SELECT EMP_ID,EMP_NAME FROM EMPLOYEES ) WHERE ROWNUM <= 3
3、对象视图
对象视图以对象的方式进行数据存储,是对对象的查询。对象视图是基于对象类型来创建的,因此,创建对象视图之前需要先创建对象类型。
1>、创建对象类型
CREATE TYPE EMPLOYEE IS OBJECT
(
EMP_ID NUMBER,
EMP_NAME VARCHAR2(20),
SALARY NUMVER
)
CREATE TYPE用于创建新的类型,EMPLOYEE指定了新类型的名称,IS OBJECT表示类型为一个对象,( EMP_ID NUMBER, EMP_NAME VARCHAR2(20),SALARY NUMVER )为对象类型中各属性的具体定义。
2>、创建对象视图
CREATE OR REPLACE VIEW OV_EMPLOYEES
OF EMPLOYEE
WITH OBJECT OID(EMP_ID)
AS
SELECT EMPLOYEE_ID,EMPLOYEE_NAME SALARY FROM EMPLOYEES
CREATE OR REPLACE VIEW用于创建或者替换一个视图;OV_EMPLOYEES标识了新视图的名称,OV前缀表示该视图是一个对象视图;OF EMPLOYEE表示新视图是基于对象类型EMPLOYEE;WITH OBJECT OID用于标识对象中的主键,该主键是EMP_ID属性。
3>、查看对象视图
DESC OV_EMPLOYEES
SELECT VIEW_NAME,VIEW_TYPE,OID_TEXT
FROM USER_VIEWS
WHERE VIEW_NAME = 'OV_EMPLOYEES'
4>、查询对象视图
SELECT * FROM OV_EMPLOYEES
4、物化视图
前面三种视图:关系视图、内嵌视图和对象视图,实际都是通过定制查询并利用查询定义来获取数据。三种视图都不会直接存储数据,每次操作时,都会进行编译。物化视图存储实际数据,会占用一定的数据库空间。其更接近于临时表,但不像临时表那样在某个特定的时机会删除数据。物化视图中的数据是可重用的,经常应用于读取频繁的场合。
物化视图对于大数据表的处理显得尤为重要。为了统计一个拥有百万级记录的数据表的总和及平均值问题,将耗费大量数据库资源和时间。可以通过物化视图进行改善,对表进行一次统计,并将统计结果存储在物化视图中,以后每次直接查询该视图即可。但是物化视图并不适合统计更新频繁的数据,因为每次的更新都连带更新物化视图,所付出的代价很大。
1>、创建物化视图
CREATE MATERIALIZED VIEW MV_MONTHLY_SALES
BUILD IMMEDIATE
REFRESH ON COMMIT
ENABLE QUERY REWRITE
AS
SELECT SALE_MONTH,SUM(PRICE * QUANTITY)
FROM SALES_ORDERS
GROUP BY SALE_MONTH
CREATE MATERIALIZED VIEW用于创建物化视图,物化视图没有REPLACE选项;BUILD IMMEDIATE要求Oracle立即编译视图;REFRESH ON COMMIT要求Oracle数据库一旦基础表的修改被提交,应自动更新视图,以便保持视图的数据和基础表一致;ENABLE QUERY REWRITE表示启用查询重新功能。
2>、查询物化视图
SELECT * FROM MV_MONTHLY_SALES
3>、查看物化视图
SELECT MVIEW_NAME,QUERY FROM USER_VIEWS WHERE MVIEW_NAME = 'MV_MONTHLY_SALES'
4>、删除物化视图
DROP MATERIALIZED VIEW MV_MONTHLY_SALES
Oracle 11g系列:视图的更多相关文章
- Oracle 11g系列:数据表对象
Oracle数据库的下一层逻辑结构并非数据表,而是表空间.每个数据表都属于唯一的表空间. 1.Oracle表空间 与数据表相同,Oracle表空间是一个逻辑对象,而非物理对象,是数据库的组成部分.当使 ...
- Oracle 11g系列:SQL Plus与PL/SQL
SQL Plus是Oracle提供的一种用户接口,是数据库与用户之间进行交互的工具. PL/SQL是Oracle的过程化编程语言. 1.登录SQL Plus 利用Windows的[开始]|[运行]命令 ...
- Oracle 11g系列:函数与存储过程
1.函数 Oracle中的函数分为两类:系统函数和自定义行数.对于自定义函数,函数的传入参数可以没有,如果有,一定要明确其数据类型.函数传入参数不能在函数内部进行修改.函数必须有返回值,并且返回值必须 ...
- Oracle 11g系列:约束
约束是每个数据库必不可少的一部分,约束的目的在于保存数据的完整性.数据完整性是指数据的精确性和可靠性.数据库约束主要包括:主键约束.外键约束.唯一性约束.检查约束和默认值约束. 1.主键约束 主键约束 ...
- Oracle 11g系列:数据库
1.创建Oracle数据库 创建Oracle数据库的最常用工具为Database Configuration Assistant(数据库配置助手),依次选择[开始]|[所有程序]|[Oracle-Or ...
- [统计信息系列7] Oracle 11g的自动统计信息收集
(一)统计信息收集概述 在Oracle 11g中,默认有3个自动任务,分别是:自动统计信息收集.SQL调优顾问.段空间调整顾问,查看方法如下: SQL> SELECT CLIENT_NAME,T ...
- 【锁】Oracle锁系列
[锁]Oracle锁系列 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ...
- Rman Enhancements(增强) In Oracle 11g. (Doc ID 1115423.1)
Rman Enhancements In Oracle 11g. (Doc ID 1115423.1) APPLIES TO: Oracle Database - Enterprise Edition ...
- SQL SERVER 2008向ORACLE 11G迁移示例
来源于:http://www.cnblogs.com/hiizsk/ 由SQL SERVER 2008向ORACLE 11G迁移过程记录之一-表 使用Oracle Sql Developer将SQL ...
随机推荐
- 使用Prism6 建立 Windows 10 通用程序.
使用Prism6 建立 Windows 10 通用程序. 目标: 使用prism6,建立Windows 通用程序项目. 1, 解决方案—添加新建项目—通用—空白应用—输入名称—确定—确定 2 ,引用上 ...
- .net之微信企业号开发(三) 回调模式的接口开发
一.前言 微信企业号应用中,有两种模式,一种是普通模式,这种模式只能进行简单网页链接,以及发送固定的消息.为了可以让企业号的用户更好的与应用交互,微信提供了回调模式,这种回调模式的可以将用户发送给微信 ...
- Enable MFA for a user
If you are root/admin account, in order to configure a virtual MFA device, you must have physical ac ...
- VIM(四) C语言开发插件设置
http://blog.csdn.net/guolb57/article/details/7013076
- 使用ajax预加载图片
使用Ajax 上面所给出的方法似乎不够酷,那现在来看一个使用Ajax实现图片预加载的方法.该方法利用DOM,不仅仅预加载图片,还会预加载CSS.JavaScript等相关的东西.使用Ajax,比直接使 ...
- LintCode 392 House Robber
// Ref: https://segmentfault.com/a/1190000003811581// Ref: http://www.cnblogs.com/grandyang/p/438363 ...
- String、String.valueOf、toString 它们三者的区别总结
今天在使用这个的时候发现,他们三者好像在某些场所都是可以用的,但是不免会让人想到那既然它们三者这么的相似,那么总有些什么区别吧.我也在网上找了一些资料看.自己也看了API文档,就将他们三的区别总结一下 ...
- \(\S1\) 描述性统计
在认识客观世界的过程中,统计学的思想和方法经常起着不可替代的作用.在许多工程及自然科学的专业领域中,包括可靠性分析.质量控制.生物信息.脑科学.心理分析.经济分析.金融风险管理.社会科学推断.行为科学 ...
- I/O requests taking longer than 15 seconds to complete on file I/O瓶颈问题
I/O requests taking longer than 15 seconds to complete on file I/O瓶颈问题 http://mssqlwiki.com/2012/08/ ...
- 移动开发发展方向-----Hybird混合开发3大方案
移动开发发展方向-----Hybird混合开发3大方案