序列就是一组数字的队列。序列具有以下特征:

  • 自动生成唯一编号;
  • 是一个可共享的对象;
  • 通常用于创建主键;
  • 可替换应用程序中自增之类的相关代码;
  • 如果将序列高速缓存放到内存中,则可以提高序列值访问效率,但是也增大了危险。一旦内存失效,那么序列缓存值就丢失了。

   Oracle序列和MySql序列不一样。MySql序列可以在建表定义时一起定义,并且有插入自增的功能。但Oracle不行,Oracle序列必须以单独的数据对象出现。

创建序列

create sequence STU_ID_SEQincrement by 20     -- 步进为20,默认值为1start with 100      -- 起始值100,起始值并不意味着是最小值minvaluemaxvalue 1000       -- 最大值1000minvalue 1nocache             -- 无缓存nocycle;            -- 无循环

NEXTVAL和CURRVAL

  NEXTVAL会返回下一个可用的序列值,每次被引用时都返回一个唯一的值。

  CURRVAL会返回当前序列值。

select STU_ID_SEQ.nextval from dual;
select STU_ID_SEQ.currval from dual;

使用序列

  主键使用序列:

-- 创建students表
create table students
( id    number(6)     constraint PK_STU_ID primary key, name  varchar2(30)  not null,sex   varchar2(3)    check(sex in ('F', 'M', 'F2M')),birth char(10)
);-- 插入数据
insert into students values(STU_ID_SEQ.nextval, '小红', 'F', '2022-01-01');
insert into students values(STU_ID_SEQ.nextval, '小强', 'M', '2022-03-01');

  当将序列使用在表中时,如果想查询当前序号值,尽量不要使用“select STU_ID_SEQ.nextval from dual;”语句来查看,因为nextval会影响表后续的序号值。如果想查看,应该使用currval。

修改序列

alter sequence STU_ID_SEQincrement by 1start with 1maxvalue 200nocachenocycle;

  序列修改准则:

  • 必须是序列的所有者才可以对序列实现ALTER权限;
  • 修改只会影响之后的序列号;
  • 如果从不同的序号处重新开始,则必须删除原有的序列后才可以重新创建。
  • 系统会执行一些验证操作。

删除序列

drop sequence STU_ID_SEQ;

查看序列

-- 查看当前用户下的所有序列
select * from user_sequences;-- 查看所有用户下的序列
select * from all_sequences;-- 需要权限
select * from dba_sequences;

Oracle序列sequence相关推荐

  1. oracle 序列 清除,Oracle序列(Sequence)创建、使用、修改、删除

    Oracle序列(Sequence)创建.使用.修改.删除 一: 创建序列: 语法: CREATE SEQUENCE sequence_name [START WITH num] [INCREMENT ...

  2. oracle 序列缓存的作用,Oracle序列sequence 深入理解

    Oracle序列:序列(Sequence)创建.使用.修改.删除,序列(Sequence)是用来生成连续的整数数据的对象.序列常常用来作为主键中增长列,序列中的可以升序生成,也可以降序生成. 语法:创 ...

  3. Oracle序列(sequence)使用总结

    前言: 我们都知道数据库表中的主键值有的时候我们会用数字类型的并且自增.mysql.sql server中的都可以使用工具创建表的时候很容易实现.但是oracle中没有设置自增的方法的工具,一般情况我 ...

  4. oracle初始化序列值,如何修改序列(Sequence)的初始值(START WITH)

    Oracle 序列(Sequence)主要用于生成流水号,Oracle EBS系统中是经常用到的.但是,有时需要修改序列初始值(START WITH)时,好多人凭感觉认为:Alter Sequence ...

  5. oracle 查询公有同义词,Oracle序列(sequence),OracleRUNNUM和Oracle同义词(synonyms)

    一团网资讯 一团资讯 > oracle > Oracle序列(sequence),OracleRUNNUM和Oracle同义词(synonyms)... Oracle序列(sequence ...

  6. 修改oracle序列最小值,Oracle如何使用序列 Oracle序列使用教程

    Oracle序列(sequence)是一种数据库项,能够生成一个整数序列.通常用于填充数字类型的主键列. Oracle序列使用教程: 1.创建序列: CREATE SEQUENCE sequence_ ...

  7. oracle的sequence是什么,关于Oracle的序列(Sequence)使用内容是什么呢?

    关于Oracle的序列(Sequence)使用序列是一数据库对象,利用它可生成唯一的整数.一般使用序列自动地生成主键值.对我们程序员来讲,精力时间有限,我们只学最有用的知识.大家请看: 1) 建立序列 ...

  8. Oracle数据库中序列(SEQUENCE)的用法详解

    http://database.51cto.com/art/201108/280742.htm 在Oracle数据库中,什么是序列呢?它的用途是什么?序列(SEQUENCE)其实是序列号生成器,可以为 ...

  9. Oracle中Sequence序列的使用

    在oracle中sequence就是序列,每次取的时候它会自动增加.Sequence与表没有关系.  1.Create Sequence 首先要有CREATE SEQUENCE或者CREATE ANY ...

最新文章

  1. 2021年大数据Spark(二十二):内核原理
  2. Leangoo阶段式硬件产品开发流程
  3. 什么是O/RMapping?为什么要用O/R Mapping?
  4. 推荐:两款实用的Jupyter插件~
  5. JPA实体关联关系,一对一以及转换器
  6. 启动Eclipse时,启不起来JVM terminated. Exit code=-1
  7. mybatis解决 1 字节的 UTF-8 序列的字节 1 无效
  8. 大数据之-Hadoop本地模式_WordCount官方案例---大数据之hadoop工作笔记0022
  9. PowerDesign介绍与使用
  10. ROC-RK3328-CC开源主板运行LibreELEC系统
  11. 编程c语言黑与白,C语言黑与白问题代码及解析
  12. Sothink Logo Maker 4.2.4254 中文绿色便携版(LOGO设计工具)
  13. PHP的数据类型主要有三大类八小类。
  14. fmt/core.h:1711:3: error: static assertion failed: Cannot format an argument.解决方案
  15. vue 不同条件展示不同页面_vue根据条件不同显示不同按钮的操作
  16. 离职、辞职、辞退、劳动纠纷应该怎么办?(附劳动法)
  17. php 给视频打水印,如何给视频加表情 给视频局部画面加动态图片或水印
  18. 交直流调速系统matlab,MATLAB与交直流调速系统仿真.ppt
  19. Powerpoint自动插入页码
  20. 怎样才算是一个好的测试用例

热门文章

  1. 图形学变换——平移、旋转和缩放
  2. 图像对抗学习笔记:复现DPatch
  3. 东辉职校计算机专业录取分数线,2016年上海东辉职校录取分数
  4. 等值连接、自然连接和内连接之间的区别
  5. 负数补码表示范围以及规格化数
  6. Linux中定位JAVAHOME
  7. 第一个项目(热敏打印机)
  8. Md5工具包加密之MD5Util
  9. element UI dialog点击dialog区域外会关闭dialog
  10. linux——进程的概念与状态