文档介绍:MySQL 中约束保存在 information_schema 数据库的 table_constraints 中,可以通过该表查询约束信息; 约束主要完成对数据的检验, 保证数据库数据的完整性; 如果有相互依赖数据, 保证该数据不被删除。常用五类约束: ’’ not null :非空约束,指定某列不为空 unique : 唯一约束,指定某列和几列组合的数据不能重复 Primary key :主键约束,指定某列的数据不能重复、唯一 foreign key : 外键, 指定该列记录属于主表中的一条记录, 参照另一条数据 check :检查,指定一个表达式,用于检验指定数据注意: MySQL 不支持 check 约束,但可以使用 check 约束,而没有任何效果; 根据约束数据列限制,约束可分为: 单列约束:每个约束只约束一列多列约束:每个约束约束多列数据 1、 not null 约束非空约束用于确保当前列的值不为空值, 非空约束只能出现在表对象的列上。 Null 类型特征: 所有的类型的值都可以是 null ,包括 int 、 float 等数据类型空字符串””是不等于 null ,0 也不等于 null create table temp( id int not null , name varchar (255) not null default ‘ abc ’, sex char null ) 上面的 table 加上了非空约束,也可以用 alter 来修改或增加非空约束增加非空约束 alter table temp modify sex varchar (2) not null ; 取消非空约束 alter table temp modify sex varchar (2) null ; 取消非空约束,增加默认值 alter table temp modify sex varchar (2) default ‘ abc ’ null ;2、 unique 唯一约束是指定 table 的列或列组合不能重复, 保证数据的唯一性。虽然唯一约束不允许出现重复的值,但是可以为多个 null 同一个表可以有多个唯一约束, 多个列组合的约束。在创建唯一约束的时候, 如果不给唯一约束名称,就默认和列名相同。 MySQL 会给唯一约束的列上默认创建一个唯一索引; create table temp ( id int not null , name varchar (25), password varchar (16), -- 使用表级约束语法, constraint uk_name_pwd unique (name, password) ); 表示用户名和密码组合不能重复添加唯一约束 alter table temp