声明:此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 字段名 字段类型 约束;