首页 > 数据库技术 > 详细

程序员的SQL经典笔记1_自动增长字段

时间:2015-08-14 19:29:46      阅读:232      评论:0      收藏:0      [点我收藏+]

自动增长字段
在设计数据库的时候,有时需要表的某个字段是自动增长的,最常使用自动增长字段的就是表的主键,使用自动增长字段可以简化主键的生成.不同的DBMS中自动增长字段的实现机制也有不同,下面分别介绍。

  • MYSQL 中设定一个字段为自动增长字段非常简单,只要在表定义中指定字段为AUTO_INCREMENT即可.
    例子:

create table t_student
(
t_id int primary key auto_increment,
t_name varchar(50),
t_age int
);
insert into t_student(t_name,t_age)values("King",22);
insert into t_student(t_name,t_age)values("Hong",22);
  • Oracle 中的自动增长字段

Oracle中不像MYSQL和MSSQLServer中那样指定一个列为自动增长列的方式,不过在Oracle中可以通过SEQUENCE序列来实现自动增长字段.
在使用SEQUENCE前需要首先定义一个 SEQUENCE,定义 SEQUENCE 的语法如下:

CREATE SEQUENCE sequence_name
INCREMENT BY step
START WITH startvalue;

其中sequence_name为序列的名字,每个序列都必须有唯一的名字;startvalue参数值为起始数字,step参数值为步长,即每次自动增长时增加的值.
一旦定义了SEQUENCE,你就可以用CURRVAL来取得SEQUENCE的当前值,也可以通过NEXTVAL来增加SEQUENCE,然后返回新的SEQUENCE值,比如:

sequence_name.CURRVAL
sequence_name.NEXTVAL

如果SEQUENCE不需要的话就可以将其删除:

DROP SEQUENCE sequence_name;

下面举一个使用SEQUENCE序列实现自动增长的例子.
首先创建一个名称为seq_PersonId的SEQUENCE:

create sequence seq_t_person
increment by 1
start with 1;

然后创建T_Person表:

CREATE TABLE T_Person
( 
FId NUMBER (10) PRIMARY KEY, 
FName VARCHAR2( 20) , 
FAge NUMBER ( 10)
) ;

执行上面的 SQL 语句后就创建成功了 T_Person 表,然后执行下面的 SQL 语句向
T_Person 表中插入一些数据:

INSERT INTO T_Person( FId, FName, FAge)
VALUES( seq_PersonId.NEXTVAL, ‘ Tom‘ , 18) ;
INSERT INTO T_Person( FId, FName, FAge)
VALUES( seq_PersonId.NEXTVAL, ‘ Jim‘ , 81) ;
INSERT INTO T_Person( FId, FName, FAge)
VALUES( seq_PersonId.NEXTVAL, ‘ Kerry‘ , 33) ;


程序员的SQL经典笔记1_自动增长字段

原文:http://8196049.blog.51cto.com/8186049/1684662

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!