SQL研习录(17)——AUTO INCREMENT字段(自动增量)


版权声明

  • 本文原创作者:清风不渡
  • 博客地址:https://blog.csdn.net/WXKKang

一、AUTO INCREMENT字段

  因为在一张表中主键中的数据是不可重复的,有些时候,我们希望主键的数据是自动生成的且唯一的,这时候使用AUTO INCREMENT字段就显的方便了很多,在定义一张表的同时设置主键为自动增量(Auto-increment)字段,这样在插入数据的时候就会自动生成一个唯一的数据了
  Auto-increment 会在新记录插入表中时生成一个唯一的数字

二、不同数据库中的语法

1、在MySQL中的语法

  MySQL使用AUTO_INREMENT关键字时的语法如下:

CREATE TABLE table_name(
	column_name1 int NOT NULL AUTO_INCREMENT,
	column_name2 data_type(size),
	column_name3 data_type(size),
	...
	PRIMARY KEY (column_name1)
)

  MySQL使用AUTO_INREMENT关键字来执行自动增量( auto-increment )任务,默认情况下,AUTO_INREMENT的起始值为1,每个新记录增加1,如果需要以其他值(例如100)为初始值,则可以使用下面的语法:

ALTER TABLE table_name AUTO_INCREMENT=100

  向这个表添加字段时,我们就不需要为设置自动增长量的列指定值了,因为它会自动生成一个唯一值的,添加的时候语法如下:

INSERT INTO table_name (column_name2,column_name3,...) VALUES (column_value2,column_value3,...);

2、在SQL Server中的语法

  SQL Server使用AUTO_INREMENT关键字时的语法如下:

CREATE TABLE table_name(
	column_name1 int IDENTITY(1,1) PRIMARY KEY,
	column_name2 data_type(size),
	column_name3 data_type(size),
	...
)

  在SQL Server中使用IDENTITY关键字执行自动增量( auto-increment )任务,在上面的示例中,IDENTITY的起始值为1,每个新记录增量为1,如果需要修改(例如以10为起始值,每个新记录增量为2)则可修改为IDENTITY(10,2),其他需求类似
  在添加数据的时候同样只需添加其他字段的值即可,设置了自动增长量的列会自动生成唯一的记录,添加时的语法如下:

INSERT INTO table_name (column_name2,column_name3,...) VALUES (column_value2,column_value3,...);

3、在Access中的语法

  Access数据库使用AUTO_INREMENT关键字时的语法如下:

CREATE TABLE table_name(
	column_name1 Integer PRIMARY KEY AUTOINCREMENT,
	column_name2 data_type(size),
	column_name3 data_type(size),
	...
)

  MS Access数据库使用 AUTOINCREMENT 关键字执行自动增量( auto-increment )任务,默认情况下,AUTOINCREMEN的起始值为1,每个新记录递增 1,如果需要修改(例如以10为起始值,每个新记录增量为2)则可修改为AUTOINCREMENT(10,2),其他需求类似
  在添加数据的时候同样只需添加其他字段的值即可,设置了自动增长量的列会自动生成唯一的记录,添加时的语法如下:

INSERT INTO table_name (column_name2,column_name3,...) VALUES (column_value2,column_value3,...);

4、在Oracle中的语法

  Oracle数据库使用AUTO_INREMENT关键字,必须使用序列( sequence )对象(该对象生成数字序列)创建自动增量( auto-increment )字段,语法如下:

CREATE SEQUENCE seq_column_name 
MINVALUE 1  
START WITH 1  
INCREMENT BY 1  
CACHE 10

  解释:上面的代码创建了一个名为seq_column_name的序列( sequence )对象,它以1开头,以1递增。此对象缓存10个值以提高性能,缓存选项指定要存储多少序列值以提高访问速度
  在添加数据的时候则必须使用nextval函数,该函数从seq_hor序列检索下一个值,代码如下:

INSERT INTO table_name (seq_column_name,column_name2,...)  
VALUES (seq_person.nextval,column_value2,...)

  使用上面的语句添加数据时,设置自动生成的列会从seq_column_name序列中分配下一个数字添加进去

发布了81 篇原创文章 · 获赞 36 · 访问量 3348

猜你喜欢

转载自blog.csdn.net/WXKKang/article/details/103818621