视图:

  作用:是数据库对象,是一个或多个表的或视图中导出的虚表,视图对应的数据并不是存储在视图中,而是存储在数据库中的数据表中。

    视图的结构和数据是对数据表进行查询的结果。

  优点:

    1.简化数据操作。

    2.着重于特定数据

    3.视图提供了一个简单的安全机制,可以定制没个用户的访问权限。

    4.提供向后兼容性。(我们访问的视图名不变,视图里面的表名改变、我们只需要用以前的视图名去重新创建视图,这样就会把之前的覆盖掉,这样客户端就不需要改变)

  视图的创建:

CREATE [OR REPLACE] [FORCE] VIEW view_name
AS subquery
[WITH CHECK OPTION ]
[WITH READ ONLY]
or replace :若所创建的视图已经存在,oracke自动重建该视图。
force :不管基表是否存在oracle都会自动创建该视图。
subquery :一条完整的select语句,可以在该语句满足视图定义的约束。
with check option :插入或修改的数据行必须满足视图定义的约束。
with read only :该视图上不能进行任何dml操作(对数据操作)

    

  

  创建普通视图  

create view view_table1
as
select * from
(select rownum r,t.* from t_area t) c
where c.r>3

  创建带条件的视图

    or replace   表示替换以前的视图同名的

create or replace view view_table1
as
select * from
(select rownum r,t.* from t_area t) c
where c.r>3

  force 表示sql 语句不是正确的也可以添加视图

    存在的意义:如果后期添加了t_are表这个视图就可以使用了

create or replace force view view_table1
as
select * from
(select rownum r,t.* from t_are t) c
where c.r>3

  with check option 插入或修改的数据必须满足视图定义的约束。

create or replace view view_table1
as
select rownum as rn,id,name from t_area where rownum <= 5 and id != 5
WITH CHECK OPTION

  

update view_table1 set id = 5

  

二: 物化视图

    定义:视图是一个虚拟表(也可以认为条语 句),基于它创建时指定的查询视图是一个虚拟表(也可以认为条语 句)。

    区别:和普通视图的区别。

      

  普通视图:存储的是sql 语句

  物化视图:存储的是sql执行的结果(表结构)

  创建物化视图:

        CREATE  MATERIALIZED VIEW view_name
[BUILD IMMEDIATE(默认值) | BUILD DEFERRED ] //物化数据什么时候生成
REFRESH [FAST|COMPLETE|FORCE[默认值]]
[ ON [COMMIT |DEMAND] ]
AS subquery

  物化数据的产生:

[BUILD IMMEDIATE(默认值)  | BUILD DEFERRED ]   //物化数据什么时候生成
BUILD IMMEDIATE(默认值)在物化数据时产生数据
build deferred 在创建时不生成,在以后使用时生成。
//使用这个生成物化数据
begin
  DBMS_MVIEW.refresh( view_name ,'C' ); //c表示command
end

  刷新方式:1.增量(fast增量刷新);2.完整刷新;3.自动

【fast】增量刷新
【complete】完整的物化视图
【force】自动(系统自己判断什么时候进行刷新)默认

  手动刷新数据

CREATE  materialized VIEW name
AS
subquery

insert(插入数据)
select * from name(查询数据)
begin
  DBMS_MVIEW.refresh( name ,'C' );//手动刷新数据

end ;

  自动刷新数据

CREATE  materialized VIEW name
refresh
on commit
AS
subquery
insert(插入数据)
select * from name(查询数据)

  增量刷新  只刷新自上次刷新到现在修改的

create materialized view log on 表名 with rowid
--创建物化视图中的语句中,必须有基表的ROWID create materialized view view_name
refresh fast--设置增量刷新
--刷新时机为手动刷新(默认)
as
sqlquery --查询物化视图
select * from view_name
--插入数据
insert into
commit;--提交数据
删除数据
commit;
--手动刷新
begin
DBMS_MVIEW.refresh(物化数据名,'C');
end;

  查看日志表

old_new $$   :

    N:表示新值;

    O:表示旧值;

change_vector$$:表示修改矢量,用来被的是哪个或几字段。 .此列是raw,其实oracle采用的方式就是用每个bit位

      去映射一个列。插入操作显示为:EF,删除显示为:OO更新操作则根据更新字段的位置而显示不同值。

      当我们手动刷新物化视图后,物化视图日志哦被清空,物化视图更新。

//手动刷新物化视图就会

begin DBMS_MVIEW.refresh( 物化视图名,'C' ); end ;

  刷新时机:

  【on commit】提交时候进行刷新

  【on demand】手动进行刷新

序列

   序列:是oracle提供的产生一系列唯一序列的数字的数据库对象。

    创建序列 

      create sequence 序列名称

    使用伪表查看序列

      select  序列名称.nextval from dual

    创建复杂序列

create sequence vv6   --保存在sequences文件家中
increment by 10     --step执行一次所要加的数
start with 0      --开始数 必须等于或大于最小值
maxvalue 300      --数最大值
minvalue 0      --最小数
cycle      --设置为循环
cache 30      --设置时必须小于一次循环的次数

  索引:

    索引是关系数据库中用于存放每一条记录的一种对象,主要目的是加快数据的读取速度和完整性检查。

    建立索引是一项技术性要求高的工作。一般在数据库设计阶段的与数据库结构一道考虑。应用系统的性能直接与索引的合理直接有关。

  创建普通视图:      

  create index 索引名 on 表名(列名);

   创建唯一索引:

     create unique index 索引名称 on 表名(列名);

   创建复合索引:

    create index 索引名称 on 表名(列名,列名.....);

     创建反向索引:

    create index 索引名称 on 表名(列名) reverse;

     创建位图索引:

    create bitmap index 索引名称 on 表名(列名);

oracle之简单总结的更多相关文章

  1. linux/windows系统oracle数据库简单冷备同步

    linux/windows系统oracle数据库简单冷备同步 我们有一个财务系统比较看重财务数据的安全性,同时我们拥有两套系统,一个生产环境(linux),一个应急备份环境(windows).备份环境 ...

  2. ORACLE 数据库简单测试

    ORACLE 数据库简单测试 操作系统:Windows 7 – ORACLE:oracle database 10.2.0.4 一.目的 测试 启动监听程序.数据库  非同一个用户的情况,用户是否可以 ...

  3. Oracle 最简单的随系统自己主动启动

    Oracle 最简单的随系统自己主动启动 俗话说用户是上帝,他们有时候提出一个问题很的简单,就仅仅须要一句话,一分钟就完事了.可是拿到我们DBA来说,可能至少得半个小时甚至半个月才干满足他的一句话.有 ...

  4. oracle 游标简单案例

    oracle  游标简单案例 一.案例: DECLARE IDO NUMBER; DABH CHAR); t_count ); CURSOR TJ_CURSOR IS SELECT IDO,DABH ...

  5. 踩坑系列の Oracle dbms_job简单使用

    二话不说先上代码 --创建存储过程 create or replace procedure job_truncateState is begin --此处就是要定时执行的sql execute imm ...

  6. oracle 游标简单示例

    1.游标的概念以及作用 游标(Cursor)可以使用户想操作数组一样对查询出来的结果集进行操作,可以形象的看做一个变动的光标,其实际行是一个指针,它在一段Oracle存放数据查询结果集或数据 操作集的 ...

  7. Oracle DBLINK 简单使用

    oracle在进行跨库访问时,可以通过创建dblink实现,今天就简单的介绍下如果创建dblink,以及通过dblink完成插入.修改.删除等操作 首先了解下环境:在tnsnames.ora中配置两个 ...

  8. Oracle 数据库简单操作

    现在大型企业一般都用Oracle数据库,Oracle数据库在一般采用expdp,impdp 导出导入数据,但是在操作中经常会遇到一些问题.下面来浅析这些问题. 1. 导出数据 一般导出数据的时候需要建 ...

  9. Oracle 的简单描述

    在 Oracle 开发中,客户端把 SQL 语句发送给服务器,服务器对 SQL 语句进行编译.执行,把执行的结果返回给客户端. Oracle SQL 语句由如下命令组成:  数据定义语言( DDL) ...

随机推荐

  1. Query to find the eligible indexes for rebuilding

    Query to find the eligible indexes for rebuilding The following script can be used to determine whic ...

  2. Linux.CommanlineTool.grep

    grep grep [options] PATTERN [FILE...] grep [options] [-e PATTERN | -f FILE] [FILE...] 1. grep的Regula ...

  3. spring batch遇到的一些问题

    1.Spring Batch - A job instance already exists: JobInstanceAlreadyCompleteException 这是因为JobParameter ...

  4. 全局组建封装(挂载到vue实例的原型中,通过this访问)

    主题:组建的封装  一:install注册的全局封装(v-grid九宫格组建)               1.九宫格的封装主要有三个api 点击功能 每行个数 是否隐藏边框              ...

  5. 20172306《java程序设计与数据结构》第六周学习总结

    20172306<Java程序设计>第六周学习总结 教材学习内容总结 第八章关键学习了数组的相关内容.我觉得主要分一下几点: 1.索引是从0开始,要区分好索引值和个数值.0的索引处是第一个 ...

  6. LoibreOJ 2042. 「CQOI2016」不同的最小割 最小割树 Gomory-Hu tree

    2042. 「CQOI2016」不同的最小割 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据   题目描述 ...

  7. Python之路(第十四篇)os模块

    一.os模块 1.os.getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) import os print(os.getcwd()) 2.os.chdir(path) 改变 ...

  8. 我的MVP呢?

    Ladies and gentelmen, welcome the MVP of NBA 16-2017 Season:... 呃,等下,好像哪里不对.那是因为,我要说的MVP根本就不是Most Va ...

  9. (xxx.55).toFixed(1) 无法正确进位处理

    参考:https://juejin.im/post/5a11a9fef265da43284073b4?utm_medium=fe&utm_source=weixinqun 根本原因在于2.55 ...

  10. STL基础3:map

    #include <iostream> #include <map> #include <string> using namespace std; #define ...