oracle-序列

序列

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;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陶洲川

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值