专栏首页Java学习网Oracle数据库,浅谈Oracle序列

Oracle数据库,浅谈Oracle序列

Oracle是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一,而序列是一个计数器,它并不会与特定的表关联,通过创建Oracle序列和触发器实现表的主键自增。序列一般是用来填充主键和计数的,不占用磁盘空间,占用内存。本期我们重点来讲述一下Oracle序列。

1、创建序列

ORACLE序列的语法格式为:

(1)、INCREMENT BY用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表Oracle序列的值是按照此步长递减的。

(2)、START WITH 定义序列的初始值(即产生的第一个值),默认为1。

(3)、MAXVALUE 定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增Oracle序列,系统能够产生的最大值是10的27次方;对于递减序列,最大值是-1。

(4)、MINVALUE定义序列生成器能产生的最小值。选项NOMAXVALUE是默认选项,代表没有最小值定义,这时对于递减序列,系统能够产生的最小值是?10的26次方;对于递增序列,最小值是1。

(5)、CYCLE和NOCYCLE 表示当序列生成器的值达到限制值后是否循环。CYCLE代表循环,NOCYCLE代表不循环。如果循环,则当递增序列达到最大值时,循环到最小值;最小值为1。对于递减序列达到最小值时,循环到最大值。如果不循环,达到限制值后,继续产生新值就会发生错误。

ORACLE OCP考试有道题关于序列,如下所示

(6)、CACHE(缓冲)定义存放序列的内存块的大小,默认为20。NOCACHE表示不对序列进行内存缓冲。对序列进行内存缓冲,可以改善序列的性能。缓存选项会造成数据丢失,当实例异常关闭时。

2、删除序列

语法是DROP SEQUENCE [schema].序列名;

3、序列使用

CURRVAL: 返回序列的当前值。

NEXTVAL:序列递增,返回下一值。

你不能使用序列的CURRVAL和NEXTVAL,在下面情况下(具体参见官方文档):

(1)、在DELETE、SELECT、UPDATE的子查询中

(2)、在视图或物化事物的查询中。

(3)、SELECT查询中使用了DISTINCT操作符。

(4)、SELECT查询中有GROUP BY或ORDER BY

4、序列查看

5、序列修改

不能修改序列的初始值,否则会报ORA-02283

序列是一个节省时间的对象,因为它可以减少应用程序中产生序列程序的代码量。序列

号独立于表被存储和产生,因此,相同的序列可以被多个表使用。Oracle序列在某种程度上能够帮助Oracle数据库简化代码,提高效率。

本文分享自微信公众号 - Java学习网(javalearns),作者:javalearns

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Oracle数据库,浅谈Oracle索引提高效率

    Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。在关系数据库中,索引是一种单独的、物...

    用户1289394
  • Oracle数据库,浅谈PL/SQL异常处理

    众所周知,程序的错误一般情况下分为两类:编译错误和运行时错误。其中运行时错误被称为异常。PL/SQL语句块中处理异常的部分即为异常处理部分。在异常处理部分,可以...

    用户1289394
  • 大数据ETL实践探索(3)---- 大数据ETL利器之pyspark

    本系列文章主要针对ETL大数据处理这一典型场景,基于python语言使用Oracle、aws、Elastic search 、Spark 相关组件进行一些基本的...

    流川疯
  • 《深入解析Oracle》一书前言

    因为我一直觉得,前言是一本书非常重要的部分,作者的思想和意图会在这里传达。以下就是我为这本新书所写下的前言。 ------------------------...

    数据和云01
  • 兴趣驱动 成就卓越 - 访Oracle开发大师苏旭晖先生

    苏旭晖,网名 newkid ITPUB开发版资深版主,SQL开发专家 编辑手记:感谢苏旭晖先生授权我们独家转载其系列精品文章,我们首先转载一篇ITPUB论坛对N...

    数据和云
  • 大数据ETL实践探索(1)---- python 与oracle数据库导入导出

    本系列文章主要针对ETL大数据处理这一典型场景,基于python语言使用Oracle、aws、Elastic search 、Spark 相关组件进行一些基本的...

    流川疯
  • Oracle数据库,简述Oracle数据库特点

    ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S...

    用户1289394
  • 大数据ETL实践探索(1)---- python 与oracle数据库导入导出

    本系列文章主要针对ETL大数据处理这一典型场景,基于python语言使用Oracle、aws、Elastic search 、Spark 相关组件进行一些基本的...

    bigxdl
  • Oracle 修改oracle数据库名

    2.确保数据库处于mount,非open状态,并且在加载前先以immediate方式关闭。如:

    授客

扫码关注云+社区

领取腾讯云代金券