加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL语句 之 序列

发布时间:2022-10-13 02:30:52 所属栏目:MsSql教程 来源:未知
导读:
晟数学院DBA成长日记--SQL篇
序列
利用序列可以实现数据表流水号(自动增长列)的操作。许多数据库中都会为用户提供一种自动增长列的操作,例如,Access数据库、MySQL、DB2、SQL Server等

mssql 使用序列_pubmed里mrna序列是cdna序列吗_ae渲染序列没有tga格式targa序列

晟数学院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)查询数据字典

mssql 使用序列_pubmed里mrna序列是cdna序列吗_ae渲染序列没有tga格式targa序列

序列的操作

(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属性,操作序列(本语句将执行三次)

mssql 使用序列_pubmed里mrna序列是cdna序列吗_ae渲染序列没有tga格式targa序列

(12)创建序列,让其初始值设置为30,每次增长步长为2

pubmed里mrna序列是cdna序列吗_ae渲染序列没有tga格式targa序列_mssql 使用序列

(13)创建循环序列mssql 使用序列,让序列的内容在1、3、5、7、9之间循环

pubmed里mrna序列是cdna序列吗_ae渲染序列没有tga格式targa序列_mssql 使用序列

mssql 使用序列_pubmed里mrna序列是cdna序列吗_ae渲染序列没有tga格式targa序列

mssql 使用序列_ae渲染序列没有tga格式targa序列_pubmed里mrna序列是cdna序列吗

序列的修改

(14)将每次增长的步长修改为10,将序列的最大值修改为98765,缓存修改为100

SCOTT@SDEDU> alter sequence myseq6 increment by 10 maxvalue 98765 cache 100;

Sequence altered.

(15)通过user_sequences数据字典查看所有序列

pubmed里mrna序列是cdna序列吗_ae渲染序列没有tga格式targa序列_mssql 使用序列

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!