1、 序列: 是oacle提供的用于产生一系列唯一数字的数据库对象。主要用于提供主键值。
2、 创建序列:
创建序列的语法
CREATE SEQUENCE sequence //创建序列名称
[INCREMENT BY n] //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是
[START WITH n] //开始的值,递增默认是minvalue 递减是maxvalue
[{MAXVALUE n | NOMAXVALUE}] //最大值
[{MINVALUE n | NOMINVALUE}] //最小值
[{CYCLE | NOCYCLE}] //循环/不循环
[{CACHE n | NOCACHE}];//分配并存入到内存中
其中:
Create 创建 Sequence 序列 seqEmop 序列名称
Increment by 步长
Stat with 1 开始值
Maxvalue 最大值
Minvalue 最小值
NEXTVAL 返回序列中下一个有效的值,任何用户都可以引用
CURRVAL 中存放序列的当前值
NEXTVAL 应在 CURRVAL 之前指定 ,二者应同时有效
3、 例子
Create sequence seqEmp increment by 1 start with 1
4、 访问
Select seqEmp.nextval from dual;
Select seqEmp.currval from dual;
5、 删除序列
使用DROP SEQUENCE 语句删除序列
删除之后,序列不能再次被引用
----------------------------数据库设计中--------------------------------------------------
为每个需要自动增长列的表建立一个序列
例如:
--表student
create table student
(
id integer primary key,
stuName varchar2(10),
stupwd varchar2(10)
);
--序列 seq_student
create sequence seq_student
increment by 1
start with 1;
-----------------------------------------------------------------------------------------
--表 course
create table course
(
id integer primary key,
cNo varchar2(10),
cName varchar2(10)
);
--序列 seq_course
create sequence seq_course
increment by 1
start with 1;
----------------------------------- 在后台代码中为student表插入数据------------------------------
1、 页面(学生注册 stuReg.jsp)
用户名: |
|
|
密码: |
|
|
提交 |
取消 |
2、 后台代码
//连接数据库
//………..此处省略好多字
String s1 = 从用户框中获取输入的内容(“Tom”)
String s2 = 从密码框中获取输入的内容(“123”)
// stmt.execute(“insert into student values(seq_student.nextval , s1 , s2 )”);
----------------------------------- 在后台代码中为course表插入数据------------------------------
1、页面(课程录入 course.jsp)
课程编号: |
|
|
课程名称: |
|
|
提交 |
取消 |
2、后台代码
//连接数据库
//………..此处省略好多字
String c1 = 从课程编号框中获取输入的内容(“001”)
String c2 = 从课程名称框中获取输入的内容(“Oracle数据库”)
// stmt.execute(“insert into course values(seq_course.nextval , c1 , c2 )”);