oracle之简单总结
视图:
作用:是数据库对象,是一个或多个表的或视图中导出的虚表,视图对应的数据并不是存储在视图中,而是存储在数据库中的数据表中。
视图的结构和数据是对数据表进行查询的结果。
优点:
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之简单总结的更多相关文章
- linux/windows系统oracle数据库简单冷备同步
linux/windows系统oracle数据库简单冷备同步 我们有一个财务系统比较看重财务数据的安全性,同时我们拥有两套系统,一个生产环境(linux),一个应急备份环境(windows).备份环境 ...
- ORACLE 数据库简单测试
ORACLE 数据库简单测试 操作系统:Windows 7 – ORACLE:oracle database 10.2.0.4 一.目的 测试 启动监听程序.数据库 非同一个用户的情况,用户是否可以 ...
- Oracle 最简单的随系统自己主动启动
Oracle 最简单的随系统自己主动启动 俗话说用户是上帝,他们有时候提出一个问题很的简单,就仅仅须要一句话,一分钟就完事了.可是拿到我们DBA来说,可能至少得半个小时甚至半个月才干满足他的一句话.有 ...
- oracle 游标简单案例
oracle 游标简单案例 一.案例: DECLARE IDO NUMBER; DABH CHAR); t_count ); CURSOR TJ_CURSOR IS SELECT IDO,DABH ...
- 踩坑系列の Oracle dbms_job简单使用
二话不说先上代码 --创建存储过程 create or replace procedure job_truncateState is begin --此处就是要定时执行的sql execute imm ...
- oracle 游标简单示例
1.游标的概念以及作用 游标(Cursor)可以使用户想操作数组一样对查询出来的结果集进行操作,可以形象的看做一个变动的光标,其实际行是一个指针,它在一段Oracle存放数据查询结果集或数据 操作集的 ...
- Oracle DBLINK 简单使用
oracle在进行跨库访问时,可以通过创建dblink实现,今天就简单的介绍下如果创建dblink,以及通过dblink完成插入.修改.删除等操作 首先了解下环境:在tnsnames.ora中配置两个 ...
- Oracle 数据库简单操作
现在大型企业一般都用Oracle数据库,Oracle数据库在一般采用expdp,impdp 导出导入数据,但是在操作中经常会遇到一些问题.下面来浅析这些问题. 1. 导出数据 一般导出数据的时候需要建 ...
- Oracle 的简单描述
在 Oracle 开发中,客户端把 SQL 语句发送给服务器,服务器对 SQL 语句进行编译.执行,把执行的结果返回给客户端. Oracle SQL 语句由如下命令组成: 数据定义语言( DDL) ...
随机推荐
- 不使用SwitchHosts修改C:\Windows\System32\drivers\etc\hosts文件
1.nginx中的nginx.conf完成修改,配置好了端口和域名www.xuecheng.com 2.找到Hosts文件,将Hosts文件复制到桌面.(Windows 10系统Hosts文件路径为: ...
- 一个命令查看mysql的所有配置(原创)
在mysql的命令提示符下,执行下面一句话,查看mysql服务器的所有全局配置信息: mysql> show global variables; 得到: 上表的文本内容: "Varia ...
- mysql 存储过程 与 循环
mysql 操作同样有循环语句操作,三种标准循环模式:while, loop,repeat, 外加一种非标准循环:goto [在c或c#中貌似出现过类型循环但是一般不建议用!] 一般格式为:delim ...
- Informatica_(6)性能调优
六.实战汇总31.powercenter 字符集 了解源或者目标数据库的字符集,并在Powercenter服务器上设置相关的环境变量或者完成相关的设置,不同的数据库有不同的设置方法: 多数字符集的问题 ...
- (转)Oracle 使用 DBLINK详解
DBLINK详解 1.创建dblink语法: CREATE [PUBLIC] DATABASE LINK link CONNECT TO username IDENTIFIED BY password ...
- BZOJ1226或洛谷2157 [SDOI2009]学校食堂
BZOJ原题链接 洛谷原题链接 注意到\(B[i]\)很小,考虑状压\(DP\). 设\(f[i][j][k]\)表示前\(i - 1\)个人已经拿到菜,第\(i\)个人及其后面\(7\)个人是否拿到 ...
- ubuntu安装jre
1)登录java官网,下载jre,并解压,解压后的jre文件夹移动到 /usr/lib/java 路径下 2)配置系统环境变量 JAVA_HOME CLASSPATH PATH 打开/etc/envi ...
- Mysql 注入load_file常用路径
WINDOWS下: c:/boot.ini //查看系统版本 c:/windows/php.ini //php配置信息 c:/windows/my.ini //MYSQL配置文件,记录管理员登陆过的M ...
- MySQL正则表达式 REGEXP详解
在开始这个话题之前我们首先来做一个小实验,比较一下REGEXP和Like他们两个哪个效率高,如果效率太低,我们就没有必要做过多的研究了,实验的代码如下:<?phpRequire("co ...
- centos6 搭建nginx实现负载均衡
一.安装nginx 1)准备2台服务器,环境一样,同时执行 rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.r ...