SQL |序列
序列是一组整数 1, 2, 3, … 由一些数据库系统生成和支持,以按需生成唯一值。
- 序列是用户定义的模式绑定对象,它生成一系列数值。
- 序列在许多数据库中经常使用,因为许多应用程序要求表中的每一行都包含唯一值,而序列提供了一种生成它们的简单方法。
- 数值序列按定义的时间间隔按升序或降序生成,并且可以配置为在超过 max_value 时重新启动。
句法:
CREATE SEQUENCE sequence_name
START WITH initial_value
INCREMENT BY increment_value
MINVALUE minimum value
MAXVALUE maximum value
CYCLE|NOCYCLE ;
sequence_name: Name of the sequence.
initial_value: starting value from where the sequence starts.
Initial_value should be greater than or equal
to minimum value and less than equal to maximum value.
increment_value: Value by which sequence will increment itself.
Increment_value can be positive or negative.
minimum_value: Minimum value of the sequence.
maximum_value: Maximum value of the sequence.
cycle: When sequence reaches its set_limit
it starts from beginning.
nocycle: An exception will be thrown
if sequence exceeds its max_value.
例子
以下是按升序创建序列的序列查询。
- 示例 1:
CREATE SEQUENCE sequence_1 start with 1 increment by 1 minvalue 0 maxvalue 100 cycle;
上面的查询将创建一个名为sequence_1的序列。序列将从 1 开始并递增 1,最大值为 100。序列将在超过 100 后从起始值重复自身。
- 示例 2:
以下是按降序创建序列的序列查询。CREATE SEQUENCE sequence_2 start with 100 increment by -1 minvalue 1 maxvalue 100 cycle;
上面的查询将创建一个名为sequence_2的序列。序列将从 100 开始,应小于或等于最大值,并将增加 -1,最小值为 1。
- 使用序列的示例:创建一个名为 students 的表,其列为 id 和 name。
CREATE TABLE students ( ID number(10), NAME char(20) );
现在将值插入表中
INSERT into students VALUES(sequence_1.nextval,'Ramesh'); INSERT into students VALUES(sequence_1.nextval,'Suresh');
其中sequence_1.nextval将在sequence_1 中定义的序列中的id 列中插入id。
输出:______________________ | ID | NAME | ------------------------ | 1 | Ramesh | | 2 | Suresh | ----------------------