01-视图
-
什么是视图
-
视图是一个虚拟表
-
视图是由sql查询语句产生的
-
视图真实存在 但是不存储数据
-
视图中的数据 只是对 基表(源数据表) 中的数据的引用
-
-
视图的作用
-
简化数据操作
-
着重于特定数据/提供一定的安全性
-
提供向后兼容性
-
-
视图的基本语法
-
create [or replace] [force] view view_name as subquery [with check option ] [with read only]
-
or replace
-
替换已存在的视图
-
-
force
-
强制创建视图(可以给不存在的数据表创建视图)
-
-
with check option
-
不能修改视图形成字段的数据
-
-
with read only
-
只读不能进行数据修改
-
-
1.1 with check option的作用
总结
-
简单视图 中的任意数据都可以进行任意操作
-
with check option 只要不影响我们的非视图数据就可以操作
1.2 with read only
-
作用
-
视图不能进行任何的dml操作(增删改)
-
1.3 or replace
-
作用
-
替换原有的视图
-
1.4 force
-
作用
-
创建一个没有源数据表的视图
-
-
删除视图
-
drop view 视图名
-
02-复杂视图
-
定义
-
多表 聚合函数 子查询 等
-
-
注意
-
不要dml操作 很容易出错
-
03-物化视图
-
什么是物化视图
-
视图 是不会存储数据的
-
物化视图 是真实存储数据
-
-
为什么要物化视图
-
加快查询速度
-
数据量变大 视图查询速度比较慢
-
物化视图 查询速度比较快
-
meger on read
-
计算后置
-
-
meger on write
-
计算前置
-
-
<<加快数据同步>>
-
-
语法
-
create materialized view view_name [build immediate | build deferred ] refresh [fast|complete|force] [ on [commit | demand ] | start with (start_time) next (next_time) ] as subquery
-
materialized view
-
物化视图
-
-
build immediate(默认)
-
创建视图后 立马生成数据
-
-
build deferred
-
创建视图后 等待刷新生成数据
-
-
refresh : 数据刷新
-
fast : 增量更新
-
complete : 全量更新
-
force (默认方式)
-
尝试使用fast更新
-
再去使用全量更新
-
-
on (确定更新时机)
-
commit : 基表只要commit就会开始更新
-
demand : 手动方式(刷新) (默认的)
-
-
-
-
物化视图的增量更新
-
增量更新语法
-
增量更新的物化视图
-
创建基表的物化视图日志
-
产生物化视图的 sql 必须包含rowid
-
-
创建日志 create materialized view log on T_ADDRESS with rowid; 物化视图的sql必须包含rowid select T_ADDRESS.ROWID as addr_rowid, T_AREA.ROWID as area_rowid, T_ADDRESS.ID, T_ADDRESS.NAME, T_AREA.NAME area from T_ADDRESS inner join T_AREA on T_ADDRESS.AREAID = T_AREA.ID;
-
04-序列
-
什么是序列
-
一个可以产生 唯一数字
-
设置起始位置
-
设置增长数量
-
最大值
-
最小值
-
循环
-
-
-
语法
-
CREATE SEQUENCE sequence //创建序列名称 [INCREMENT BY n] //递增的序列值是 n 如果 n 是正数就递增,如果是负数就递减 默认是 1 [START WITH n] //开始的值,递增默认是 minvalue 递减是 maxvalue [{MAXVALUE n | NOMAXVALUE}] //最大值 [{MINVALUE n | NOMINVALUE}] //最小值 [{CYCLE | NOCYCLE}] //CYCLE和NOCYCLE 表示当序列的值达到限制值后是否循环。CYCLE代表循环即到达例如最大值后重新从最小值开始 [{CACHE n | NOCACHE}];//定义存放序列的内存块的大小,默认为20。NOCACHE表示不对序列进行内存缓冲。对序列进行内存缓冲,可以改善序列的性能。
-
-
注意点
-
起始值是不能小于最小值的
-
如果没有循环 能取到值 是不能超过最大值的
-
如果有循环 起始从最小值开始
-
cache默认是为20的 循环值是要大于这个值的
-
05-同义词
-
对象的别名
-
对象 : 表 序列 视图
-
-
作用
-
私有
-
只能是创建这个同义词的用户使用
-
-
共有
-
所有的用户都可以使用
-
-
给对象起别名 设置为公共的
-
所有人都可以用这个同义词 所有人都不知道原始表名 表的用户
-
-
-
语法
-
create [public] SYNONYM synooym for object;
-
不加public就是私有的
-
加public就是共有的
-