A: 视图
a:概念:
一种虚拟的表,可以封装sql语句,视图的结构和数据就是对数据表进行查询的结果.
b:优缺点
优点:
1:简化数据操作 (简化用户处理数据的方式)
2:着重于特定数据 (不必要的数据或敏感数据可以不出现在视图中)
3:视图提供了一个简单而有效的安全机制,可以定制不同用户对数据的访问权限.
4:提供了向后兼容性
c:创建或修改视图
创建语法:
create [or replace][force] view 视图名 as 查询语句[with check option][with read only]
or replace: 若创建的视图已经存在, or replace自动重建视图
force: 不管基表是否存在oracle 都会自动创建视图
with check option: 插入或修改的数据行必须满足视图定义的约束.
with read only: 只允许查询,不允许修改.
删除语法:
drop view 视图名
d:简单视图
1:概括:
视图中查询的表称之为基表,修改视图实际就是在修改基表中的数据,
视图在数据库中实际就是一条sql语句,查询视图的数据就是在查询基表的数据.
2:查询简单视图
语法:
select * from 视图名 where 条件
3:修改试图使句:
语法:
update 视图名 set 修改的值 where 条件
4:带检查约束的视图
在创建视图的后面加上一句 with check option ,不能修改条件,其他都可以修改.只检查条件不能修改
5:只读视图:
和带检查的视图一样,在后面加上with read only ,意思就是只能查询不能做其他的操作
6:创建错误的视图(错误就是表格是虚假的)
在创建视图的时候,加上force.
e:复杂视图:
1:多表关联
create or replace view 视图名 as 查询语句(select * from 多表名 where 条件)
2:查询复杂视图
语法:
select * from 视图名 where 条件;
3:修改复杂视图
语法:
update 视图名 set 修改的值条件 where 条件
注意:键保留表,把主键保留下来的那个表(详见oracle第三天文档).
f:聚合统计的复杂视图
注意:聚合统计的视图只能读(查询),不能进行其他的操作.
g:物化视图
1:概念
物化视图就是将虚拟的视图创建出来.物化视图类似于一张表,需要占用存储空间,对一个物化视图查询的执行效率与查询一个表是一个样.
2:创建物化视图
语法:
create meterialized view 视图名 [ build immediate | build deferred ]
[refresh [fast | complete | force]]
[on [commit | demand ] | start with (start_time) next (next_time)] as 查询语句.
3:优缺点
优点:
查询速度比视图要快
缺点:
占用资源,并且时时更新资源
注意:物化视图不能修改
4:手动刷新与自动刷新物化视图
手动刷新: //'c代表完全刷新'
执行语句 begin DBMS_MVIEW.refresh('视图名','C') end;
自动刷新
在创建视图中加入on commit 就可以设置为自动刷新
5:创建时不生成数据的物化视图
在创建视图中加入build deferred 就可以设置为不生成数据的物化视图
6:增量刷新和完全刷新
在创建视图中加入fast就实现增量刷新,前提是必须创建物化视图日志, 记录基表发生了哪些变化,用这些记录去更新物化视图.
语法:
create materialized view long on 实现增量刷新的表 with 条件(基于条件创建,用条件寻找增量刷新的表)
B:序列
a:创建简单序列
语法:
create sequence 序列名;
1:查询下一个值
select 序列名.nextval from dual;
2:查询当前值
select 序列名.currval from dual;
b:循环序列
1:一次缓存数有多少 cache值*增长值
2:一次循环的值不能小于一次缓存的数
c:修改序列和删除序列
修改语法:
alter sequence 序列名称 maxvalue5000
C:同义词
概念:
同义词实质上是指定方案对象的一个别名.
a:创建同义词
语法:
create[public]SYNONYM 同义词 for object;
synonym表示要创建的同义词的名称,object 表示表,视图,序列等我们要创建同义词的对象名称.
加上public,数据库所有用户都可以访问别名.不加public 只针对当前用户可以访问.
D:索引
概念:
索引是用于加速数据存取的数据对象,合理的使用索引可以大大降低i/o(读取)次数,从而提高数据的访问性能.
a:创建普通索引
语法:
create index 索引名称 on 表名(列名);
b:唯一索引(要求这一列不能重复时,使用唯一索引,添加唯一约束)
语法:
create unique index 索引名称 on 表名(列名);
c:组合索引(复合索引,给经常查询的某几列添加复合索引.顺序不能变)
语法:
create index 索引名称 on 表名(列名,列名);
d:反向键索引(一串连续的数字,使其自动增长)
语法:
create index 索引名称 on 表名(列名)reverse;
e:位图索引(位图索引适合创建在低基数上 例如:颜色 只能做等于查询)
优点:
减少响应时间,节省空间占用
语法:
create bitmap index 索引名称 on 表名(列名);