oracle视图序列索引,Oracle-视图、序列、索引、事务

视图(作用):

1、限制对数据库的访问

2、将复杂的查询简单化

3、维护数据的独立性

4、对于相同的数据可产生不同的视图

通常用来查询数据,也可改变表中数据,但并不推荐

原因如下:

如果视图中包含以下内容,则不能实现数据的插入:

1、group 函数,group by(分组),distinct(去重)

2、 用表达式定义的列

3、ROWNUM伪列

4、基表中未在视图中选择其他的列,定义为非空,而且没有默认值

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

序列(作用):

1、自动产生唯一数值

2、是一个可以共享的对象

3、用于主键值的创建

4、当序列驻留在缓存(cache)中时,可以有效的提高序列的访问效率

5、序列数值的产生和存储与表无关

NEXTVAL:返回下一个有效的序列值

CURRVAL:获取当前序列值,在被引用之前必须用NEXTVAL产生一个值

不管产生还是获取序列值,只要得到序列值后,该序列值无法继续使用,下次则自动获取

下个序列值

序列的修改:

1、必须是序列的所有者,或者具备ALTER序列的权限

2、只能影响修改之后产生的序列值,对之前序列值没有影响

3、如果要求序列冲一个不同的值重新开始生产数值,必须删除序列,在重建该序列

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

索引

可以建立类似目录的数据库对象,实现数据的快速查询

作用:

1、可以有效的提高Oracle服务器检索记录的速度

2、通过快速路径访问方法迅速定位数据,减少磁盘的I/O操作

3、独立于创建索引的表

4、Oracle服务器自动使用和维护索引

分类:

1)按照索引的存储结构分类:

1.1、B数索引

1.2、位图索引

1.3、反向键索引

2)按索引值是否唯一分类

2.1、唯一索引

2.2、非唯一索引

3)按索引列分类

3.1、单列索引

3.2、组合索引

3.3、基于函数索引

实现原理:

1) B树索引原理:

把建立索引的列的值,作为‘’叶子‘’当成树的底层,Oracle对叶子根据值来分块,当查找某条

记录时,首先根据建立索引的列值,找到对应的‘’叶子‘’块,在根据对应的地址找到上层里对应的

数据行。

2)位图索引原理:

通过二进制值标识索引列对应的数据,从而快速找到数据

创建:

自动:当增加主外键约束或者唯一约束时,自动创建索引

手动:可以在列上闯将非唯一索引,有效的提高对记录的访问速度

以下情况不需要创建索引

1、表很小

2、很少在查询条件中出现的列

3、绝大多数情况下查询结果大于表总记录数的2-4%

4、频繁封信的表

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

事务:

是指作为单个逻辑工作单元执行的一组相关操作

特点:

1、原子性(atomic):

事务里的语句已经不能再被拆分,是一个整体

2、一致性(vonsistence):

事务中所有数据的修改,要么全部执行,要么全部不执行

3、隔离性(isolation):

事务与事务间没有任何关系,是独立、隔离的

4、持久性(durability):

保证事务对数据库的修改是持久有效的,即使发生系统故障也不丢失

事务的使用步骤:

1、开启事务

记录每条SQL语句是否执行成功

2、根据执行结果判断

提交事务:数据真正影响到数据库的表中数据

回滚事务:对执行过的语句,恢复到执行前的状态

分类:

1)隐式事务(默认)

单独的一条操作语句就是一个事务

2)显式事务

开启事务后(begin),可以通过commit 提交事务,若出现异常(exception), 可以通过rollback回滚

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值