序列(SEQUENCE)序列是一数据库对象,利用它可生成唯一的整数。

由于它属于可共享对象,所以允许多个用户访问。一般情况下,序列用于创建主键值。

序列号的存储和生成与表无关。因此,同一序列可以用于多个表。

一、创建序列

create sequence 序列名

[increment by n]      --指定序列号的间隔值,其中n 为整数

[start with n]            --指定要生成的第一个序列号(如果省略该语句,序列将从1 开始)

[{maxvalue n | nomaxvalue}]   --指定当序列达到其最大值或最小值后,是否继续生成值

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

[{minvalue n | nominvalue}]

[{cycle | nocycle}]      ---表示当序列生成器的值达到限制值后是否循环。
                                   CYCLE代表循环,NOCYCLE代表不循环。如果循环,则当递增序列达到最大值时,循环到最
                                   小值;对于递减序列达到最小值时,循环到最大值。如果不循环,达到限制值后,继续产生新值
                                   就会发生错误。

[{cache n | nocache}];     --指定Oracle 服务器预先分配并保留在内存中的值的个数。(默认20)如果系统崩溃,这些值将丢失。

实例:

create sequence user_seq
increment by 1
start with 1
maxvalue 50000
nocache
nocycle;

二、查询序列

(1)要验证序列已创建,请查询user_sequences数据字典。要查看序列的所有设置,请按如下所示方式查询USER_SEQUENCES 数据字典。

select sequence_name, min_value, max_value, increment_by, last_number  from user_sequences;

(2)查看当前用户的所有序列 
select sequence_owner,sequence_name from dba_sequences  where sequence_owner='PPNIE';

注意:sequence_owner的值必须为大写,不管你的用户名是否大写。只有大写才能识别。

(3)查询当前用户的序列总数 
select count(*) from dba_sequences where sequence_owner='用户名';

(4)生成删除该用户下的序列号的sql语句
select 'drop sequence ' ||sequence_name ||' ;' from dba_sequences where sequence_owner='PPNIE';

三、nextval和currval使用

nextval 伪列用于从指定序列中提取连续的序列号。必须用序列名来限定nextval。

在引用“序列名.nextval”时,会生成新的序列号,并将当前的序列号放置在currval 中。

insert into t_user(uiid,uname) values(user_seq.nextval,'系统管理员');

可以在下列上下文中使用nextval 和currval:

  • 不属于子查询的select 语句的select 列表
  • insert 语句中子查询的select 列表
  • insert 语句的values 子句
  • update 语句的set 子句

四、修改序列

alter sequence 序列名 
  [increment by n] 
  [{maxvalue n | nomaxvalue}] 
       [{minvalue n | nominvalue}]  
  [{cycle|nocycle}] 
  [{cache n|nocache}];

注意:不能修改序列的初始值

alter sequence seq_empid
increment by 2;

注: Oracle修改序列(Sequence)起始值的方法

五、删除序列

drop sequence 序列名;

drop sequence seq_empid

Oracle入门(十二G)之序列相关推荐

  1. 网络编程懒人入门(十二):快速读懂Http/3协议,一篇就够!

    本文中文译文由作者"ably.io"发布于公众号"高可用架构",译文原题:<深入解读HTTP3的原理及应用>.英文原题:<HTTP/3 dee ...

  2. IM开发者的零基础通信技术入门(十二):上网卡顿?网络掉线?一文即懂!

    [来源申明]本文引用了微信公众号"鲜枣课堂"的<上网慢?经常掉线?这篇文章告诉你该怎么办!>文章内容.为了更好的内容呈现,即时通讯网在引用和收录时内容有改动,转载时请注 ...

  3. Android入门(十二)SQLite事务、升级数据库

    原文链接:http://www.orlion.ga/610/ 一.事务 SQLite支持事务,看一下Android如何使用事务:比如 Book表中的数据都已经很老了,现在准备全部废弃掉替换成新数据,可 ...

  4. Oracle系列十二:视图、记录、同义词、序列

    Oracle视图.记录.同义词.序列 1. 视图(View) 2. 记录(Record) 3. 同义词(Synonym) 4. 序列(Sequence) 1. 视图(View) (1)基本概念 Ora ...

  5. 序列(sequence)(Python入门十二)

    序列(sequence) - 序列是Python中最基本的一种数据结构     - 数据结构指计算机中数据存储的方式     - 序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索 ...

  6. Oracle入门(二)之服务启动bat

    转载自 批处理(bat文件)自动启动/关闭oracle服务 批处理(bat文件) 自动启动/关闭oracle服务 判断oracle 服务状态 如果服务处于启动状态,就关闭服务: 如果服务处于关闭状态, ...

  7. 【FPGA入门十二】1bit全加器实现计算8位二进制数中1的个数

    文章目录 一.实验任务 二.设计思路 三.代码实现 ①设计按键消抖模块 ②设计按键输入8bit二进制数 ③设计计算8bit二进制数中1的个数模块 ④设计数码管显示模块 ⑤顶层模块 ⑥设计仿真文件 ⑦仿 ...

  8. Oracle入门(二)

    Oracle数据查询 Oracle数据库默认是: 1.字符大小写敏感 (字符字段区分大小写) 2.日期格式敏感(默认日期格式为:DD-MON-RR ) 日(两位数)-月-年(两位数) Oracle事务 ...

  9. [WebGL入门]十二,模型数据和顶点属性

    注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:].另外.鄙人webgl研究还不够深入,一些专业词语.假设翻译有误.欢迎大家指 ...

最新文章

  1. 「PSR 规范」PSR-2 编码风格规范
  2. CSS+HTML大白
  3. 英语语法---从句总结
  4. wxWidgets:wxStaticBox类用法
  5. 开放搜索开源兼容版,支持Elasticsearch做搜索召回引擎
  6. Python3.x 基础练习题100例(91-100)
  7. 收藏 | 循环神经网络 RNN 详细图解!
  8. oracle整张表转置,从Oracle表格行列转置说起...
  9. Linux 的软件管理及配置 - 安装、卸载、升级、依赖
  10. paip.提升开发效率-----vs2010源码选择字串高亮
  11. (转)嘉信理财再度全面降佣,它会否成为投资界的Amazon?
  12. Win8之常用快捷键(1)
  13. 人脸关键点检测原理及实战
  14. ubuntu12.04双屏拼接
  15. sinon.js基础使用教程---单元测试
  16. (01)ORB-SLAM2源码无死角解析-(57) 闭环线程→计算Sim3:理论推导(2)求解R,使用四元数
  17. 关于CSP-S2021
  18. 你真的会用K折交叉吗?对于K折交叉的思考 | K折交叉的坑
  19. 【安装软件】 win10安装iTunes报错:“此Windows Installer软件包有一个问题。完成此安装需要......”的解决方式
  20. 没有痛苦的博士求学经历不是合格的(彭思龙)

热门文章

  1. [蓝桥杯][算法提高VIP]因式分解
  2. [蓝桥杯2018初赛]方格计数-巧妙枚举,找规,数论
  3. 群晖python套件包_利用群晖Docker安装ubuntu16.04搭建python网站服务器(部署篇)
  4. mysql 剔除不可见字符_不可见字符,Excel里最隐蔽的坑
  5. 列名无效如何解决_XSKY ClickHouse如何实现存算分离
  6. CoreJava 笔记总结-第四章 对象与类
  7. 怎么创建dllwenjian_如何创建和使用dll及lib文件
  8. 操作系统内存管理--简单、页式、段式、段页式
  9. 两数之和,输入有序数组 leetcode C++
  10. P3700 [CQOI2017]小Q的表格(反演、分块)