MySQL基础-18DDL语言(数据定义语言)-标识列(自增长列)

Posted Lz_蚂蚱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL基础-18DDL语言(数据定义语言)-标识列(自增长列)相关的知识,希望对你有一定的参考价值。

声明:此mysql基础学习源自尚硅谷。(推荐)b站官方链接:https://www.bilibili.com/video/BV1xW411u7ax?p=1

标识列

又称为自增长列
含义:可以不用手动的插入值,系统提供默认的序列值

特点:
1、标识列必须和主键搭配吗?不一定,但要求自增长列必须为一个key
2、一个表至多有一个自增长列
3、标识列的类型只能是数值型
4、标识列可以通过 SET auto_increment_increment=3; # 设置步长
	可以通过 手动插入值,设置起始值
5、不用手动插入值,可以自动提供序列值,默认从1开始,步长为1
	auto_increment_increment
	如果要更改起始值:手动插入值
	如果要更改步长:更改系统变量 # set auto_increment_increment=值;

1.创建表时设置标识列

DROP TABLE IF EXISTS tab_identity;
CREATE TABLE tab_identity(
	id INT PRIMARY KEY AUTO_INCREMENT, # AUTO_INCREMENT标明是标识列
	NAME FLOAT UNIQUE,
	seat INT 

);
TRUNCATE TABLE tab_identity;

# id是自增长列,id值设为null每添加数据,id值自动增加
INSERT INTO tab_identity(id,NAME) VALUES(NULL,\'john\');
# 省略列名id,每添加数据,id值自动增加
INSERT INTO tab_identity(NAME) VALUES(\'lucy\');
# 查看系统变量
SHOW VARIABLES LIKE \'%auto_increment%\';

-- MySQL中不支持设置偏移量,没效果,但是可以设置步长
# 设置系统变量步长,每次增长3(一般不改)
SET auto_increment_increment=3;

-- 若想更改起始值,可以先设置从一个起始值开始,以后每次增长依然使用默认增长步长
# 如:从10开始
insert into 表名(id,字段) value (10,值);
insert into 表名(字段) value (值); # 至此id从10开始,每次增长1

2.修改表时设置自增长列

alter table 表 modify column 字段名 字段类型 约束 auto_increment;

3.删除自增长列

alter table 表 modify column 字段名 字段类型 约束;

以上是关于MySQL基础-18DDL语言(数据定义语言)-标识列(自增长列)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL基础-17DDL语言(数据定义语言)-常见约束

MySQL基础-15DDL语言(数据定义语言)-2.表的管理

MySQL基础-16DDL语言(数据定义语言)-常见的数据类型

MySQL基础-14DDL语言(数据定义语言)-1.库的管理

Mysql基础之准备及DDL语句

MySQL 基础 -- SQL(通用语法SQL分类DDL 数据定义语言(含数据类型说明)DML 数据操作语言DQL 数据查询语言(别名去重聚合函数排序分页)DCL 数据控制语言)