oracle-序列

标签: oracle sequence seq nextval currenval
6人阅读 评论(0) 收藏 举报
分类:

序列

1、【序列】和【视图】一样,并不占用实际的存储空间,只是在数据字典中保存它的定义信息;当用户在自己的模式中创建【序列】时,用户必须具备CREATE_SEQUENCE系统权限;

2、语法:
CREATE sequence seq_name
[Start with n]
[increment by n]
[minvalue n|nominvalue]
[maxvalue n|nomaxvalue]
[cache n]
[cycle|nocycle]
[order|noorder]

说明:
① seq_name:序列名;
② Start with:指定序列的开始值默认情况下,递增序列的起始值为minvlue,递减序列的起始值为maxvalue;
③ Increment:表示序列的增量,一个正数将产生递增的序列,一个负数将产生一个递减的序列;默认增量是1;
④ minvalue:序列的最小值;
⑤ maxvalue:序列的最大值;
⑥ cache:是否为系列号预缓存,并存储在内存中;
⑦ cycle:循环,当序列达到最大值或最小值时,是否复位并继续;Nocycle表示在序列的最大值或者最小值之后,序列再增加将返回一个错误;
⑧ order:保证生成的序列按照顺序产生;Noorder只保证序列值的唯一性,不保证顺序;

3、举例:
create sequence seq_demo
start with 1
increment by 1
minvalue 0
maxvalue 999999
cache 10
cycle
order;

4、伪序列号:NEXTVAL()和CURRENVAL()
NEXTVAL():返回下一个序列值;
CURRENVAL():返回当前序列值;

5、为表中的记录添加序列值(可以当做自增长用)
Insert into table scott.book(BookID,bookname) values(seq_name.nextval(),’小红’);

6、查询当前系列号
Select seq_name.currenval from dual;

7、管理序列
SCOTT用户模式下,修改序列seq_name,序列的增量为50,缓存为50;
alter sequence seq_name
Increment by 50
Cache 50;
这里插一句题外话,什么时候用alter,什么时候用update;如果修改的是表结构等系统,结构性的,用alter;如果修改的是具体的数据,则用update;

8、查看结构信息
DESC seq_name;

9、删除序列
Drop sequence seq_name;
这里再插一句题外话,什么时候用drop,什么时候用delete;如果是表结构等系统性,结构性的,用drop;如果是删除具体的数据,则用delete;

查看评论

ORACLE-序列

1.创建:CREATE SEQUENCE emp_sequence --序列名 INCREMENT BY 1 --如果省略,则默认为1,如果负值,则代表序列的值是按照此步长递减的。 START...
  • qq_41987691
  • qq_41987691
  • 2018-04-12 15:21:48
  • 3

Oracle-序列

序列: 是oacle提供的用于产生一系列唯一数字的数据库对象。 l  自动提供唯一的数值 l  共享对象 l  主要用于提供主键值 l  将序列值装入内存可以提高访问效率 ...
  • gongth_12
  • gongth_12
  • 2013-09-05 09:26:21
  • 831

oracle-临时表空间

  • 2011年12月23日 11:39
  • 3KB
  • 下载

深入解析Oracle学习笔记(第二章)

SCN由两部分组成,高位SCN Wrap由2Bytes记录,低位SCN Base由4Bytes记录。 select dbms_flashback.get_system_change_number f...
  • lijingkuan
  • lijingkuan
  • 2015-08-05 15:56:32
  • 525

Oracle-长虹-集团公司ERP系统建议书

  • 2009年11月24日 14:41
  • 1.57MB
  • 下载

oracle-序列(SEQUENCE)

oracle-序列(SEQUENCE) 序列是一数据库对象,利用它可生成唯一的整数。一般使用序列自动地生成主码值。 一个序列的值是由特殊的Oracle程序自动生成,因此序列避免了在应用层实现序列而引起...
  • smh821025
  • smh821025
  • 2007-11-27 16:52:00
  • 733

Oracle-序列、索引和同义词

序列--create sequencecreate sequence empseq increment by 10 start with 10 maxvalue 100 cycle--need cyc...
  • J080624
  • J080624
  • 2016-10-16 16:14:44
  • 277

oracle-序列(SEQUENCE)-

           序列(SEQUENCE)序列是一数据库对象,利用它可生成唯一的整数。一般使用序列自动地生成主码值。一个序列的值是由特殊的Oracle程序自动生成,因此序列避免了在应用层实现序列而...
  • mazhiguo_nuaa
  • mazhiguo_nuaa
  • 2007-09-24 00:03:00
  • 479

oracle - 作报表需要的一些sql

作报表需要的一些oracle sql 天寒地冻,呆在家里又读完了《Mastering Oracle SQL》2nd,发现Oracle的功能还是很强悍,光函数就有两百个,那些面向对象的查询语...
  • u011742227
  • u011742227
  • 2014-12-17 14:50:50
  • 609

Oracle-序列、索引

Oracle-序列、索引序列什么是序列【Sequence】 (1)类似于MySQL中的auto_increment自动增长机制,但Oracle中无auto_increment机制 (2)是orac...
  • sdlg2015
  • sdlg2015
  • 2015-10-11 20:02:25
  • 302
    个人资料
    持之以恒
    等级:
    访问量: 17万+
    积分: 4135
    排名: 9287
    访客记录