约束
一、约束分类
非空约束: NOT NULL
唯一性约束:UNIQUE
主键约束: PRIMARY KEY
自增列: AUTO_INCREMENT
外键约束: FOREIGN KEY
检查约束: CHECK
默认值约束:DEFAULT
#查看都有哪些约束
SELECT * FROM information_schema.table_constraints WHERE table_name = '表名';
二、非空约束
2.1、特点
关键字:NOT NULL
作用:限定某个字段/某列的值不允许为空
范围:列级约束
非空约束只能出现在表对象的列上,只能某个列单独限定非空,不能组合非空
一个表可以有很多列都分别限定了非空
默认,所有的类型的值都可以是NULL,包括INT、FLOAT等数据类型
2.2、添加非空约束
建表时
CREATE TABLE 表名称(
字段名 数据类型,
字段名 数据类型 NOT NULL,
字段名 数据类型 NOT NULL);
建表后
# 如果该字段有null,则modify不能成功
alter table 表名称 modify 字段名 数据类型 not null;
2.3、删除非空约束
alter table 表名称 modify 字段名 数据类型 NULL;#去掉not null,相当于修改某个非注解字段,该字段允许为空
或
alter table 表名称 modify 字段名 数据类型;#去掉not null,相当于修改某个非注解字段,该字段允许为空
三、唯一性约束
3.1、特点
关键字:UNIQUE
作用:用来限制某个字段/某列的值不能重复
列级约束、表级约束
同一个表可以有多个唯一约束。
唯一约束可以是某一个列的值唯一,也可以多个列组合的值唯一。
唯一性约束允许列值为空。而且可以多次添加null值
在创建唯一约束的时候,如果不给唯一约束命名,就默认和列名相同。
MySQL会给唯一约束的列上默认创建一个唯一索引。
3.2、添加唯一约束
建表时
create table 表名称(
字段名 数据类型,
字段名 数据类型 unique,
字段名 数据类型 unique key,
字段名 数据类型
);
create table 表名称(
字段名 数据类型,
字段名 数据类型,
字段名 数据类型,
[constraint 约束名] unique key(字段1,字段2)
);
建表后
如果表中该字段有数据,且不满足唯一条件,则modify该字段不能成功
#字段列表中如果是一个字段,表示该列的值唯一。如果是两个或更多个字段,那么复合唯一,即多个字段的组合是唯一的
#方式1:
alter table 表名称 add unique key(字段1);
alter table 表名称 add unique key(字段1,字段2);
#方式2:
alter table 表名称 modify 字段名 字段类型 unique;
浙公网安备 33010602011771号