Oracle序列的使用过程(文章末尾有序列创建,初始化,查看,删除和一部分结论)

本文详细介绍了在Oracle数据库中如何创建、使用和管理序列。包括序列的基本概念,如何创建序列,如何使用NEXTVAL和CURRVAL获取序列值,以及如何将序列与表结合使用。同时,也探讨了序列在数据插入过程中的应用。

先简单的创建一个表:

建表
create table user_1(
       usid number(2) primary key,
       username varchar(50) not null,
       password varchar(50) not null,
       age number(3) not null,
       sex char(3) not null,
       birthday DATE
)
#添加数据
insert into user_1 values(1,'jk','jk',19,'女',to_date('2002-03-18','YYYY-MM-DD'));
insert into user_1 values(2,'jk','jk',19,'女',to_date('2002-03-18','YYYY-MM-DD'));

在这里插入图片描述

接下来可以创建序列,先来一个默认的序列(自定义序列在文章末尾):

#创建序列----别把序列的名字忘了
create sequence user_1_seq;

“Currval”------用来获取该序列的当前值
“Nextval”------用来获取该序列的下一个值.

现在我们已经创建过序列了,但是我们需要将序列添加到我们的表中:

#初始化序列
select user_1_seq.nextval from user_1;

然后我们试试获取当前序列值

#获取当前序列值
select user_1_seq.currval from user_1;

在这里插入图片描述

重点来了!

接下来是一系列的操作和一系列的结果

#删除表
drop table user_1;
#删除序列
drop sequence user_1_seq;
#建表
create table user_1(
       usid number(2) primary key,
       username varchar(50) not null,
       password varchar(50) not null,
       age number(3) not null,
       sex char(3) not null,
       birthday DATE
);
#创建序列
create sequence user_1_seq;
#添加数据
insert into user_1 values(1,'jk','jk',19,'女',to_date('2002-03-18','YYYY-MM-DD'));
insert into user_1 values(2,'jk','jk',19,'女',to_date('2002-03-18','YYYY-MM-DD'));
#初始化序列
select user_1_seq.nextval from user_1;
#获取当前序列值
select user_1_seq.currval from user_1;
#查询当前数据
select * from user_1;

在这里插入图片描述
到这里还算正常,往下看.

#初始化序列
select user_1_seq.nextval from user_1;

在这里插入图片描述
怎么自己增长了???
在这里插入图片描述
测试:

#获取当前序列值
select user_1_seq.currval from user_1;

在这里插入图片描述
通过当前序列添加数据---->currval方法

#通过序列来创建数据
insert into user_1 values(user_1_seq.currval,'jk','jk',19,'女',to_date('2002-03-18','YYYY-MM-DD'));
#查询数据
select * from user_1;

在这里插入图片描述

#获取当前序列值
select user_1_seq.currval from user_1;

在这里插入图片描述
通过下一个序列添加数据---->nextval方法

insert into user_1 values(user_1_seq.nextval,'jk','jk',19,'女',to_date('2002-03-18','YYYY-MM-DD'));

在这里插入图片描述

#查询序列
select user_1_seq.currval from user_1;

在这里插入图片描述
结论

每次使用nextval方法之后我们的序列都会进行增长,因为nextval是为了获取下一个序列值.
currval则是获取当前值,更多的是用于查看数据和插入数据.

#创建序列
create sequence 序列名;
#初始化序列给某个表
select 序列名.nextval from 表明;
#获取当前序列值
select 序列名.currval from 表明;
#删除序列
drop sequence 序列名;



自定义序列参考:

https://www.cnblogs.com/edwardsun/p/3488768.html

 create sequence product_sequence
	start with 1 --初始值默认为1
	increment by 1--每次增量默认为1
	maxvalue 10 --增量的最大上限 
	minvalue 1--增量的最小底限
	cycle
	nocache ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值