设为首页
加入收藏
首页
C语言
C++
面试
Linux
函数
Windows
数据库
下载
搜索
我要投稿
全站搜索
文章
图片
软件
视频
商品
FLASH
产品
高级搜索
当前位置:
首页
->
基础
->
数据库编程
TOP
Oracle(三)--)其他数据库对象(简单扼要论序列)
2015-11-21 01:31:17
来源:
作者: 【
大
中
小
】 浏览:
0
次
Tags:
Oracle
其他
数据库
对象
简单
扼要
序列
开篇一提?_?
除视图外,其他
数据库
对象分别为:序列、同义词、索引。其中最重要的是序列部分(与触发器相关),同义词和索引只做了解。
一、
1、序列概念
可供多个用户用来产生唯一数值的
数据库
对象
1)自动提供唯一的数值
2)共享对象
3)主要用于提供主键值
4)将序列值装入内存可以提高访问效率。
2、定义序列的语句
Sequence 两个属性( nextval、currval )的使用。<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPgo8c3Ryb25nPjGjqbLp0a88L3N0cm9uZz4KPHN0cm9uZz61scewJiMyMDU0MDujujwvc3Ryb25nPgo8c3Ryb25nPjxpbWcgc3JjPQ=="https://www.cppentry.com/upload_files/article/57/1_8s3nf__.png" alt="\">
下一个值
注意事项:
nextval 和 currval 伪列
1、nextval 返回序列中的下一个有效的值,任何用户都可以引用
2、currval 中存放序列的当前值
3、nextval 应在 currval 之前指定,否则会报 currval 尚未在此会话中定义的错误。
查询序列后,显示如下:
2)序列的修改
改为:每次增长1,以及不循环,即表中 id 无上限。
插入数据后:
修改序列的注意事项:
1、必须是序列的拥有者或对序列有 alter 权限;
2、只有将来的序列值会被改变;
3、改变序列的初始值只能通过删除序列之后重建序列的方法实现。
3)序列的使用
1、将序列值存入内存可提高访问效率
2、序列在下列情况下出现裂痕:
-- 回滚
-- 系统异常
-- 多个表同时使用一个序列(一个表维护一个序列,不要多个表由一个序列维护)
3、如果不将序列的值存入内存(nocache),可使用表 user_sequences 查看序列当前的有效值。
二、索引
1、概念
1)一种独立于表的模式对象,可以存储在与表不同的磁盘或表空间中
2)索引被删除或损坏,不会对表产生影响,其影响的只是查询的速度
3)索引一旦建立,Oracle 管理系统会对其进行自动维护,而且由 Oracle 管理系统决定何时使用索引。用户不用再查询语句中指定使用哪个索引
4)在删除一个表时,所有基于该表的索引会自动被删除
5)通过指针加速 Oracle 服务器的查询速度
6)通过快速定位数据的方法,减少磁盘的 I/O
2、创建索引
1)自动创建:在定义 primary key 或 unique 约束后系统自动在响应的列上创建唯一性索引
2)手动创建:用户可以在其他列上创建非唯一的索引,以加速查询
例:在一个或多个列上创建索引
创建成功显示:Index created
3、何时创建索引
-- 列中的数据值分布范围很广
-- 列经常在where 子句或连接条件中出现(使用频繁就需要索引)
-- 表经常被访问而且数据量很大,访问的数据大概占数据总量的 2% 到 4%
4、什么时候不要创建索引
-- 表很小
-- 列不经常作为连接条件或出现在 where 子句中
-- 查询的数据大于 2% 到 4%
-- 表经常更新
三、同义词 见数据库对象一文
版权声明:本文为博主原创文章,未经博主允许不得转载。
【
大
中
小
】【
打印
】
【
繁体
】【
投稿
】【
收藏
】 【
推荐
】【
举报
】【
评论
】 【
关闭
】 【
返回顶部
】
分享到:
上一篇
:
SQL Server中nvarchar(max)
下一篇
:
oracle表分区
评论
帐 号:
密码:
(
新用户注册
)
验 证 码:
表 情:
内 容:
Copyright@https://www.cppentry.com all rights reserved
粤ICP备13067022号-3
Powered by
qibosoft V7.0
Code © 2003-11
qibosoft