SQL基础语句(笔记)

一、序列

序列是一种数据库对象,用来自动产生一组唯一的序号;序列是一种共享式的对象,多个用户可以共同使用序列中的序号。
1、创建序列

CREATE SEQUENCE sequencename
       [INCREMENT BY n]             定义序列增长步长,省略为1
       [START WITH m]               序列起始值,省略为1
       [{MAXVALUE n | NOMAXVALUE}] 序列最大值,
       [{MINVALUE n | NOMINVALUE}] 序列最小值
       [{CYCLE | NOCYCLE}]         到达最大值或最小值后,继续产生序列(默认NOCYCLE)
       [{CACHE n | NOCACHE}];      CACHE默认是20

例子:

CREATE SEQUENCE seq_test
START WITH 1
INCREMENT BY 1

2、使用序列
NEXTVAL 和CURRVAL 伪列
NEXTVAL:
获取序列下一个值。若是新创建的序列,那么第一次调用返回的是START WITH 指定的值,以后每次调用都会得到当前序列值加上步长后的数字。
NEXTVAL会导致序列发生不仅,且序列不能回退。

SELECT seq_test.NEXTVAL FROM dual

CURRVAL :
获取序列当前值,即:最后一次调用NEXTVAL后得到的值,CURRVAL不会导致步进。但是新创的序列至少调用一次NEXTVAL后才可以使用CURRVAL。

SELECT seq_test.CURRVAL FROM dual

3、查询和删除序列
查询序列:

select * from user_sequences

删除序列:

drop sequence seq_test

4、修改序列
修改序列的注意事项:
必须是序列的拥有者或对序列有ALTER 权限
只有将来的序列值会被改变
改变序列的初始值只能通过删除序列之后重建序列的方法实现
例子:

ALTER SEQUENCE seq_test INCREMENT BY 1

未完待续…

    原文作者:SQL
    原文地址: https://blog.csdn.net/userlhj/article/details/83341408
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞