mysql自动增长 sql,SQL基础知识V2——自增长列
SQL专栏
SQL数据库基础知识汇总
SQL数据库高级知识汇总
自增长列的作用
自增长列会在新记录插入表中时生成一个唯一的数字。
我们通常希望在每次插入新记录时自动创建主键字段的值。
我们可以在表中创建一个自动增量字段。
MySQL中的自增长列
MySQL中的自增长是关键字Auto-increment,通常作为主键
以下SQL语句将 "Persons" 表中的“ID”列定义为自动递增(auto-increment)主键字段:
CREATE TABLE Persons
(
ID int NOT NULL AUTO_INCREMENT,
姓名 varchar(255) NOT NULL,
地址 varchar(255),
城市 varchar(255),
省份 varchar(255),
PRIMARY KEY (ID)
)
MySQL使用AUTO_INREMENT关键字来执行自动增量( auto-increment )任务。
默认情况下,AUTO_INREMENT的起始值为1,每个新记录增加1。
比如我们往Persons表中插入一条记录
INSERT INTO Persons(姓名,地址,城市,省份)
VALUES ('张三','花城大道12号','广州市','广东省')
注意上面插入语句我们没有插入ID,因为它可以自动补充。我们看一下插入后的结果
可以看到系统自动为我们补充上了一个为1的ID。
若要以其他值开始AUTO_INREMENT序列,请使用以下SQL语法:
ALTER TABLE Persons AUTO_INCREMENT=100
要在 "Persons" 表中插入新记录,我们不需要为"ID"栏指定值(自动添加唯一值):
INSERT INTO Persons (姓名,地址,城市,省份)
VALUES ('李四','花城大道22号','广州市','广东省')
我们可以看一下结果
上面的SQL语句在 "Persons" 表中插入一个新记录。“ID”栏将得到唯一值100,因为我们刚才把它的起始值改成了100,所以系统ID默认从100开始。
SQL Server中的自增长列
以下SQL语句将 "Persons" 表中的“ID”列定义为自动递增主键字段:
CREATE TABLE Persons
(
ID int IDENTITY(1,1),
姓名 varchar(255) NOT NULL,
地址 varchar(255),
城市 varchar(255),
省份 varchar(255)
)
MS SQL Server使用IDENTITY关键字执行自动增量任务。
在上面的示例中,IDENTITY的起始值为1,每个新记录增量为1。
比如我们往Persons表中插入一条记录
INSERT INTO Persons(姓名,地址,城市,省份)
VALUES ('王五','江夏路23号','武汉市','湖北省')
注意上面插入语句我们没有插入ID,因为它可以自动补充。我们看一下插入后的结果
如果我们指定“ID”列以10开头,并递增5,将标识( identity )更改为IDENTITY(10,5),请使用如下SQL进行修改:
ALTER TABLE Persons DROP COLUMN ID
ALTER TABLE Persons ADD ID INT IDENTITY(10,5)
这里是将ID列先删除再重新赋值,我们插入一条数据
INSERT INTO Persons(姓名,地址,城市,省份)
VALUES ('赵六','北京路23号','上海市','上海市')
我们看下结果:
此外如果只是修改起始值,而不修改步长,我们可以使用下面比较简便的SQL进行修改:
DBCC CHECKIDENT('table_name',RESEED,init_value)
我们将上面的Persons的起始ID再改成30
DBCC CHECKIDENT('Persons',RESEED,30)
修改后再插入两条数据进去,
INSERT INTO Persons(姓名,地址,城市,省份)
VALUES ('宋一','北京路26号','上海市','上海市')
INSERT INTO Persons(姓名,地址,城市,省份)
VALUES ('刘二','北京路29号','上海市','上海市')
我们看下结果:
从上面可以看出起始值已经被重置了,但是它不会以重置的起始值开始赋值,而是以它后面一个开始。
Oracle中的自增长列
您必须使用序列( sequence )对象(该对象生成数字序列)创建自动增量字段。
使用以下CREATSEQUENT语法:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
上面的代码创建了一个名为seq_pean的序列( sequence) 对象,它以1开头,以1递增。此对象缓存10个值以提高性能。缓存选项指定要存储多少序列值以提高访问速度。
要在"Persons" 表中插入新记录,我们必须使用nextval函数,该函数从seq_hor序列检索下一个值:
INSERT INTO Persons (ID,姓名,城市)
VALUES (seq_person.nextval,'张三','上海市')
相比其他数据库,Oracle这里需要指明ID的值,就是seq_person.nextval,每当插入新的数据它就会在上一条的基础上自动增长。
批注
自增长列在每个数据库中基本都会使用到,用途一般是作为主键,让系统自动给它赋值,但是也要注意自增长列是有上限的,当数据量达到上限后会停止增长,这个时候就需要重置当前的自增长列了。
mysql自动增长 sql,SQL基础知识V2——自增长列相关推荐
- SQL数据库基础知识-巩固篇一
SQL数据库基础知识-巩固篇<一>... 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用了> MySQL-57 D ...
- SQL数据库基础知识巩固
SQL数据库基础知识 数据库,又称"电子化的文件柜",是"按照数据结构来组织.存储和管理数据的仓库",是一个长期存储在计算机内的.有组织的.可共享的.统一管理的 ...
- SQL注入基础知识总结
SQL注入-基础知识总结 1.注释符 1.1.Mysql中注释符有三种 1.2.总结 2.information_schema库 2.1.了解information_schema库 2.2.常用注入语 ...
- SQL Server基础知识概念要点详细讲解
SQL Server基础知识概念要点详细讲解 目录 基础概念 1.网状模型数据库 2.层次模型数据库 3.关系模型数据库 知识点实例总结 基础概念 SQL语言中,between and表示包括两边参数 ...
- SQL入门基础知识详解
////// 导读:科学技术的快速发展正在改变我们的社会,也在不经意间改变着未来人们的职业规划.据媒体预测,数据分析将是未来最重要的工作技能之一.或许不久的将来,一家企业中80%的岗位,都需要数据分析 ...
- 数据分析必备——SQL入门基础知识
数据说·梦想季 一直很喜欢一句话:山鸟与鱼不同路,从此山水不相逢.意思就是如果你现在不够优秀,即使遇见了,也不配拥有-...努力是唯一的方向! // 导读:科学技术的快速发展正在改变我们的社会,也在不 ...
- convert.todatetime指定日期格式_SQL基础知识V2——常用日期函数
点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 日期函数是数据库中经常需要使用到的,本期将常用的几个日期函数给小伙伴做详细的介绍. G ...
- Power BI基础知识——转换表和列
点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 转换 Power BI的转换主要是针对行列做一些编辑,包括分组,转置,反转行,计数,数 ...
- mysql 立方根函数_PostgreSQL基础知识之SQL操作符实践指南
前言 操作符是数据库具有的运算特性,对文本字符和一些标签字符的处理,使用操作符可以简化SQL代码,同时也可以节省开发时间和提高开发效率. 比较操作符 在PostgreSQL中,所有的数据类型都可以使用 ...
最新文章
- python获取数据库列名_python sqlite3 查询操作及获取对应查询结果的列名
- html如何调整背景图片大小_如何快速调整证件照背景色和大小!(简单快速)...
- 【CodeForces - 195A】Let's Watch Football (追及问题,模拟)
- linux路由内核实现分析(二)---FIB相关数据结构(4)
- [BZOJ1007][HNOI2008]水平可见直线 计算几何
- 如何查看K/3数据库表及字段详细信息
- plsql32位链接64位oracle,32位PLSQL_Developer连接oracle11g_64位
- HTML期末大作业~学生个人博客静态页面模板(HTML+CSS+JavaScript)
- 微信小程序地图和百度地图定位位置不一样
- 用LM350制作简单可调电源
- OneDrive免费5T云盘空间
- 安卓开发之Intent使用介绍(显式Intent和隐式Intent)
- Allegro PCB Designer 16.6打开brd文件空白的方法
- web高德地图路线规划(多条)
- 用css解决Unigui在IE系列浏览器中字体变小的问题
- ggplot 绘制热图
- UTF-8到Unicode的编码转换
- 李永乐复习全书高等数学 第五章 多元函数微分学
- 百度离在线语音合成的快速集成
- 属性重命名 @SerializedName