#############
###约束
#############
-- PK: primary key主键约束
-- NN: Not Null 非空约束
-- UQ: unique 唯一约束
-- BIN: 二进制存储
-- UN: unsigned 表示整数
-- ZF: zero fill数值中空白区域以0填补
-- AI: auto increment自增约束
-- Default: 默认值约束
###########1.主键约束
-- 修改主键 :删除元哟偶主键--添加新的主键
alter table student
change column id id int(11) null, -- 先修改涉及的两个列的数据类型
change column name name varchar(45) not null,
drop primary key, -- 去掉原来的id主键
add primary key (name); -- 增加name为主键
############2.外键约束 (连接两个表)
-- innoDB类型的表才支持外键 外键必须建立约束
-- 待定没怎么看懂
############3.非空约束
-- 修改非空约束 (与字段类型的修改方法一样)
alter table student
change column id id varchar(45) not null;
#############4.默认值约束
-- 修改
alter table student
change column id id varchar(45) not null default 0;
-- 删除
alter table student
change column id id varchar(45) not null;
#############5.唯一约束
-- 设置唯一约束
alter table student
add unique index name_unique (name asc);
-- 取消唯一约束
alter table student
drop index name_unique ;
##############6.自增约束
-- auto_increment 数据列的属性 自适用于整数类型数据列 + unsigned + not null
-- auto_increment 数据列必须有唯一约束
-- 为字段增加自增约束要用modify!!!!
alter table student
modify column id int not null auto_increment;
-- 约束的初始值
alter table student auto_increment = 7; -- 没有写列名 直接表名就行
-- 修改偏移量
alter table student auto_increment =10;
set session auto_increment_increment =2; -- 修改自增量
set session auto_increment_offset =2; -- 修改自增偏移量 (step)
-- 删除自增约束
alter table student change column id id int(11) not null;
###注意:增加约束与删除自增约束一个是modify一个是change