约束

一、约束分类

非空约束:  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;
posted @ 2024-03-18 20:56  顽固派  阅读(61)  评论(0)    收藏  举报