oracle常规使用速成(三)

视图

将常用语句封装在 视图中,类似函数的使用

视图的创建或修改

create [or replace] [force] view view_name
as subquery
[with check option]
[with read only]
--or replace:若所创建的视图已存在,Oracle自动重建该视图
--force:不管基表是否存在,oracle都会自动创建该视图
--subquery:一条完整的select语句,可以在该语句中定义别名
--with check option:插入或修改的数据行必须满足视图定义的约束
--with read only:该视图上不能进行任何dml操作

删除视图语法

drop view view_name

更新视图

--更新视图也会使得表中数据更改
update view_owners1 set name='范小冰' where id=1;
commit;

带检查约束的视图

create view view_address2 as
select * from t_address where areaid='2'
with check option

只读视图

create or replace view view_owners1 as
select * from t_owners where ownertypeid='1'
with read only

创建带错误 force

create  view view_address2 as
select * from 不存在的视图

复杂视图的创建与使用

就是在SQL语句中有聚合函数或多表关联查询

键保留表

聚合函数视图

物化视图

物化视图与普通视图相比的区别是物化视图是建立的副本,它类似于一张表,需要占用存储空间,而对一个物化视图查询的执行效率与查询一个表是一样的

创建物化视图

create meterialized view view_name
[build immediate | build deferred]
refresh [fast|complete|force]
[
on [commit | demand ] | start with (start_time) next (next_time)
]
as
subquery
--build immediate 是在创建物化视图的时候就生成数据
--build deferred 则在创建时不生成数据,以后根据需要再生成数据,默认为build immediate 
--refresh(刷新):指当基表发生了dml操作后,物化视图合适采用哪种方式和基表进行同步
--fast 为增量刷新,只刷新自上次刷新以后进行的修改,complete 为对整个物化视图进行完全的刷新。如果选择force方式,则Oracle在刷新时回去判断是否可以进行快速刷新,如果可以则采用fast方式,否则采用complete方式,force是默认的方式
--刷新的模式有两种:on demand 和on commit。on demand指需要手动刷新物化视图(默认)。on commit 指在基表发生commit操作时自动刷新。

刷新物化视图

begin
	dbms_mview.refresh('视图名称','c');
end;

序列

什么是序列

序列是Oracle提供的用于产生一系列唯一数字的数据库对象

创建与使用简单序列

create sequence 序列名称
--通过序列的伪列来访问序列的值 
--nextval返回序列下一个值
--currval返回序列当前值
--提取序列下一个值
select 序列名称.nextval from--提取序列当前值
select 序列名称.currval from

创建复杂序列

索引

找东西快,相当于书的目录,提高性能,占据空间,数据多时候用

普通索引

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

PL/SQL

是oracle对sql语言的过程化扩展,就是在sql语句中增加过程处理语句(分支、循环等)。

[declare
	--声明变量
]
begin
--代码逻辑
[exception
--异常处理
]end;

触发器

before前置触发器

after 后置触发器

create [or replace] trigger 触发器名
	before | after
	[delete] [[or] insert] [[or]update [of 列名]
	on 表名
	[for each row][when(条件) ]
declare
...
begin
	plsql块
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值