
序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。创建序列需要CREATE SEQUENCE系统权限。序列的创建语法如下: CREATE SEQUENCE 序列名 [INCREMENT BY n] [START WITH n] [{MAXVALUE/ MINVALUE n|NOMAXVALUE}] [{CYCLE|NOCYCLE}] [{CACHE n|NOCACHE}]; INCREMENT BY 用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表序列的值是按照此步长递减的。 START WITH 定义序列的初始值(即产生的第一个值),默认为1。 MAXVALUE 定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增序列,系统能够产生的最大值是10的27次方;对于递减序列,最大值是-1。 MINVALUE定义序列生成器能产生的最小值
先在数据库中新增一个序列,如在oracle数据库中执行如下语句新增一个名为test_seq的序列
CREATE
SEQUENCE
test_seq
INCREMENT
BY
1
--
每次加几个
START
WITH
1
--
从1开始计数
NOMAXVALUE
--
不设置最大值
NOCYCLE
--
一直累加,不循环
以后你往某表中插入数据时,直接用如下形式就行了,比如:
insert
into
test_table
VALUES
(test_seqnextval,
)
test_table的第一列就是你要自增的那个id,test_seqnextval就是从新增的序列中取出下一个值,每取一次都会+1
当然,一般来说不同的表需使用不同的序列,这样它们的id可以保证连续
create sequence seq2
NOMAXVALU
start with 1
increment by 1;
1创建序列
ORACLE序列的语法格式为:
CREATE SEQUENCE 序列名
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE n|NOCACHE}];
参考自:>
一
1
select avg(salary) from emp where salary>=600;
2
update emp set salary=salary+salary01 where salary<600 and dno =(select don from dept where dname='销售部');
commit;
3
create view emp10_20 as select from emp where dno in (10,20) with read only constraint;
4
CREATE SEQUENCE s1
increment by 1
start with 1
nomaxvalue
minvalue 1
NOCYCLE;
二
declare
v_lastname varchar2(20);
v_salary number(6, 2);
v_name varchar2(20);
v_sal number(6, 2);
cursor curemp is
select ename, salary from emp where salary > 6000;
begin
v_salary := 9999;
open curemp;
loop
fetch curemp
into v_name, v_sal;
exit when curemp%notfound;
if v_sal < v_salary then
v_salary := v_sal;
v_lastname := v_name;
end if;
end loop;
dbms_outputput_line(v_lastname || ':' || v_salary);
close curemp;
end;
三
创建:
create or replace procedure getdeptbyid (v_dno int)
as
v_DNAME varchar2(20);
v_MANAGER varchar2(20);
begin
select dname,manager into v_dname,v_manager from dept where dno=v_dno;
dbms_outputput_line('部门编号:'||v_dno||chr(10)||'部门名称:'||v_dname||chr(10)||'部门经理:'||v_manager);
end;
执行:
begin
getdeptbyid(&请输入部门编号);
end;
最后一个提问不完整,不答了
以上就是关于数据库中的序列是什么具体概念全部的内容,包括:数据库中的序列是什么具体概念、往oracle数据库中新增加一条数据如何自动生成ID、Oracle数据库,创建一个序列,怎么设定该最大值无限制小为 1等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)