《Oracle数据库应用》第9章 管理数据库对象-教学课件(非AI生成).ppt

《Oracle数据库应用》第9章 管理数据库对象-教学课件(非AI生成).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

9.4序列序列用于产生惟一序号的数据库对象,用于为多个数据库用户依次生成不重复的连续整数。通常使用序列自动生成表中的主键值。序列产生的数字最大长度可达到38位十进制数。序列不占用实际的存储空间,在数据字典中只存储序列的定义描述。*序列注意:当一个序列第一次被查询调用时,它将返回一个预定值。在随后的每一次查询中,序列将产生一个按其指定的增量增长的值。序列可以是循环的,或者是连续增加的,直到指定的最大值为止。使用一个序列时,不保证将生成一串连续不断的值。例如,如果查询一个序列的下一个值供insert使用,则该查询是能使用这个序列值的唯一会话。如果未能提交事务处理,则序列值就不被插入表中,以后的insert将使用该序列随后的值。*创建序列使用SQL语句创建序列。语法格式为:CREATESEQUENCE[schema.]sequence_name /*将要创建的序列名称*/[INCREMENTBYinteger] /*递增或递减值*/[STARTWITHinteger] /*初始值*/[MAXVALUEinteger|NOMAXVALUE] /*最大值*/[MINVALUEinteger|NOMINVALUE] /*最小值*/[CYCLE|NOCYCLE] /*是否循环*/[CACHEinteger|NOCACHE] /*高速缓冲区设置*/[ORDER|NOORDER] /*序列号是否按照次序生成*/*参数说明其中:INCREMENTBY:指定序列递增或递减的间隔数值。Integer只能为正值。STARTWITH:序列的起始值。若不指定该值,对升序序列将使用该序列默认的最小值。对降序序列,将使用该序列默认的最大值。MAXVALUE:序列可允许的最大值。若指定为NOMAXVALUE,则将对升序序列使用默认值1027,而对降序序列使用默认值-1。MINVALUE:序列可允许的最小值。若指定为NOMINVALUE,则对升序序列将使用默认值1,而对降序序列使用默认值-1026。*参数说明CYCLE:指定在达到序列最小值或最大值之后,序列应继续生成值。对升序序列来说,在达到最大值后将生成最小值。对降序序列来说,在达到最小值后将生成最大值。若指定为NOCYCLE,则序列将在达到最小值或最大值后停止生成任何值。CACHE:由数据库预分配并存储的值的数目。默认值为20;也可以指定值,可接受的最小值为2。对循环序列来说,该值必须小于循环中值的个数。如果序列能够生成的值数的上限小于高速缓存大小,则高速缓存大小将自动改换为该上限数。若指定为NOORDER,则指定不预分配序列值。*创建序列示例示例CREATESEQUENCEstud_sequenceINCREMENTBY1STARTWITH100MAXVALUE?1000;*使用序列属性CURRVAL:返回序列当前值。NEXTVAL:返回当前序列值增加一个步长后的值。注意序列值可以应用于查询的选择列表、INSERT语句的VALUES子句、UPDATE语句的SET子句,但不能应用在WHERE子句或PL/SQL过程性语句中。示例INSERTINTOstudents(sno,sname)VALUES(stud_sequence.nextval,JOAN);SELECTstud_sequence.currvalFROMdual;*修改序列说明除了不能修改序列起始值外,可以对序列其他任何子句和参数进行修改。如果要修改MAXVALUE参数值,需要保证修改后的最大值大于序列的当前值。序列的修改只影响以后生成的序列号。例如,修改序列stud_sequence的设置。ALTERSEQUENCEstud_sequenceINCREMENTBY10MAXVALUE10000CYCLECACHE20;*删除序列当一个序列不再需要时,可以使用DROPSEQUENCE语句删除序列。例如,删除序列stud_sequence。DROPSEQUENCEstud_sequence;*OEM创建序列(1)在OEM中选中“序列”,进入“序列搜索”界面。*OEM创建序列(2)单击“创建”按钮,进入“创建序列”界面。*修改、删除序列修改序列用ALTERSEQUENCE语句,参数和创建类似。删除序列用DROPSEQUENCE语句。OEM

文档评论(0)

188****7976 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档