SQL语句 之 序列
晟数学院DBA成长日记--SQL篇
序列
利用序列可以实现数据表流水号(自动增长列)的操作。许多数据库中都会为用户提供一种自动增长列的操作,例如,Access数据库、MySQL、DB2、SQL Server等
晟数学院DBA成长日记--SQL篇 序列 利用序列可以实现数据表流水号(自动增长列)的操作。许多数据库中都会为用户提供一种自动增长列的操作,例如,Access数据库、MySQL、DB2、SQL Server等都有自动增长列。 但Oracle并没有提供(12c之前),所以Oracle采用序列(Sequence) 对象手工地进行增长列的控制。 序列的创建 语法: CREATE SEQUENCE 序列名称 [INCREMNET BY 步长] [START WITH 开始值] [MAXVALUE 最大值 | NOMAXVALUE] [MINVALUE 最小值 | NOMINVALUE] [CYCLE|NOCYCLE] [CACHE 缓存大小|NOCACHE] (1)创建一个myseq的默认序列 SCOTT@SDEDU> create sequence myseq; Sequence created. (2)查询数据字典 序列的操作 (3)通过nextval属性操作序列 SCOTT@SDEDU> select myseq.nextval from dual; NEXTVAL --------------- 1 (4)通过nextval属性操作序列 SCOTT@SDEDU> select myseq.currval from dual; CURRVAL --------------- 1 当用户每次重复调用myseq.nextval操作序列的时候,序列都会自动地增长,而且增长的步长 (INCREMENT_BY)设置为1,而当用户只调用myseq.currval操作序列时,无论调用多少次,都只会返回当前最后一次增长的序列值,不会进行增长。 序列的属性 SEQUENCE_NAME:序列名称。 MIN_VALUE:此序列开始的默认最小值(默认是0) MAX_VALUE:此序列开始的默认最大值(默认是99....99) INCREMENT_BY:序列每次增长的步长(默认是1) CYCLE_FLAG:循环标记,Y表示循环;N表示非循环。 CACHE_SIZE:序列操作的缓存量(默认是20)。 LAST_NUMBER:最后一次操作的数值。 序列的使用 (5)创建member表 SCOTT@SDEDU> CREATE TABLE member ( mid NUMBER,name VARCHAR2(50) NOT NULL, CONSTRAINT pk_mid PRIMARY KEY(mid) ); Table created. (6)编写数据插入语句,向member表中增加记录 SCOTT@SDEDU> insert into member values(myseq.nextval,'lala'||myseq.nextval); (7)执行上一步操作,插入数据(重复六次) SCOTT@SDEDU> / 1 row created. (8)检索全部member表数据 SCOTT@SDEDU> select * from member; MID NAME ---------- ---------------- 4 lala4 5 lala5 6 lala6 7 lala7 8 lala8 9 lala9 10 lala10 7 rows selected. 序列的使用进阶 (9)创建一个新的序列,让其每次的增长步长3 SCOTT@SDEDU> create sequence myseq1 increment by 3; Sequence created. (10)通过user_sequences数据字典查询序列是否已经成功创建 SCOTT@SDEDU> SELECT sequence_name,increment_by FROM user_sequences ; SEQUENCE_NAME INCREMENT_BY ------------------------------ ---------------------------- MYSEQ 1 MYSEQ1 3 (11)调用nextval属性,操作序列(本语句将执行三次) (12)创建序列,让其初始值设置为30,每次增长步长为2 (13)创建循环序列mssql 使用序列,让序列的内容在1、3、5、7、9之间循环 序列的修改 (14)将每次增长的步长修改为10,将序列的最大值修改为98765,缓存修改为100 SCOTT@SDEDU> alter sequence myseq6 increment by 10 maxvalue 98765 cache 100; Sequence altered. (15)通过user_sequences数据字典查看所有序列 (编辑:通辽站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |