oracle 序列的概念与使用步骤

转载自:http://www.worlduc.com/blog2012.aspx?bid=20342458


一、概念

1、  序列: oacle提供的用于产生一系列唯一数字的数据库对象。主要用于提供主键值。

2、  创建序列:

 创建序列的语法

 CREATE SEQUENCE sequence  //创建序列名称

       [INCREMENT BY 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

用户名:

Tom

密码:

123

提交

取消

2、  后台代码

//连接数据库

//………..此处省略好多字

String s1 = 从用户框中获取输入的内容(“Tom”)

String s2 = 从密码框中获取输入的内容(“123”)

// stmt.execute(“insert into student values(seq_student.nextval , s1 , s2 )”);

----------------------------------- 在后台代码中为course表插入数据------------------------------

1、页面(课程录入  course.jsp

课程编号:

001

课程名称:

Oracle数据库

提交

取消

2、后台代码

//连接数据库

//………..此处省略好多字

 String c1 = 从课程编号框中获取输入的内容(“001”)

    String c2 = 从课程名称框中获取输入的内容(“Oracle数据库”)

// stmt.execute(“insert into course values(seq_course.nextval , c1 , c2 )”);

你可能感兴趣的:(Oracle)