逆袭之旅DAY16.东软实训.Oracle.序列

时间:2023-03-09 00:13:00
逆袭之旅DAY16.东软实训.Oracle.序列

2018-07-12 14:07:44

序列

序列
1、创建序列
create sequence 序列名
[increment by n] ---步长
[start with n] ---序列的起始值 序列创建后第一次使用的第一个值
[minvalue n] ---序列的最小值
[maxvalue n] ---序列的最小值
[cycle] ---序列的设置循环取值标志
[cache n] ---序列缓存的个数

---所有属性都为默认值
create sequence myseq;

---设置属性为指定值的序列
create sequence seq
increment by 5
start with 10
minvalue 5
maxvalue 50
cycle
cache 5

两个属性:
currval:取序列当前值
nextval:序列的下一个值

语法:序列名.属性名
注意:必须先用nextval生成第一个序列值才可以使用该序列
select myseq.nextval from dual;
select myseq.currval from dual;

create table aaa(
id number(5) primary key
);

insert into aaa values (seq.nextval) ;
select * from aaa;

2、修改序列
1、创建序列
alter sequence 序列名
[increment by n] ---步长
---[start with n] ---序列的起始值 序列创建后第一次使用的第一个值
[minvalue n] ---比原来的大
[maxvalue n] ---比原来的大
[cycle]
[cache n]

3、删除序列
drop sequence 序列名;

drop sequence seq;

insert into aaa values (seq.nextval) ;
select * from aaa;
---练习
1.创建一个序列,该序列起始值从1开始,无最大值,增量是1,不循环。
create sequence myseq
increment by 1
start with 1

2.查询序列的当前值及下一个值
select myseq.nextval from dual;
select myseq.currval from dual;

3.使用第1题所建的序列,向部门表中插入两条记录,部门编号使用序列值,
部门名称分别为:Education、Market,城市分别为:DALLAS、WASHTON
insert into dept values(myseq.nextval,'Education','DALLAS');
insert into dept values(myseq.nextval,'Market','WASHTON');