约束条件

• 约束条件是在表上强制执行的数据检验规则
• 用来保证创建的表的数据完整性和准确性
• 主要在两方面对数据进行约束:空值和重复值

MySQL数据库常用约束条件

mysql 多条件in mysql多条件满足一条_数据类型

1 主体完整性

1.1 主键约束

特点

  • 能够唯一地标识表中的一条记录
  • 非空不重复,要求主键列的数据必须是唯一的,并且不允许为空
  • 每个表中只能有一个主键
  • 可以设置单字段主键,也可以设置多字段联合主键(一张表只能有一个主键,但是构成主键的字段可以有多个,这样就是一个联合主键。联合主键中多个字段的数据完全相同时,才违反主键约束)。

添加方法

create table 表名(字段1 数据类型 primary key,字段2 数据类型[,…]);
create table 表名(字段1 数据类型,字段2 数据类型[,…], primary key(主键字段));
create table 表名(字段1 数据类型,字段2 数据类型[,…], primary key(主键字段1, 主键字段2[,…]));

删除方法

alter table 表名 drop primary key;

1.2 唯一约束

特点

  • 要求该列的值必须是唯一的
  • 允许为空,但只能出现一个空值

添加方法

create table 表名(字段1 数据类型,字段2 数据类型 unique[,…]);

删除方法

alter table 表名 drop index 唯一约束名;

如果单个字段没有指定唯一约束名,则默认的唯一约束名为字段名。如果是多个字段组合为唯一约束时候,默认的唯一约束名为第一个字段的名称。如果指定了约束名,则删除的时候写约束名。

1.3 自增字段

特点

  • 指定字段的数据自动增长
  • 配合主键一起使用,并且只适用于整数类型
  • 默认从1开始,每增加一条记录,该字段的值会增加1

添加方法

create table 表名(字段1 数据类型 primary key auto_increment,字段2 数据类型[,…]);

设置自增字段的初始值

Alter table 表名 auto_increment=n;

删除方法

alter table 表名 modify 字段名 数据类型[ 约束条件];

2 域完整性

2.1 非空约束

特点

字段的值不能为空

添加方法

create table 表名(字段1 数据类型,字段2 数据类型 not null[,…]);

删除方法

alter table 表名 modify 字段名 数据类型[ 约束条件];

2.2 默认约束

特点

指定某个字段的默认值,如果新插入一条记录时没有为默认约束字段赋值,那么系统就会自动为这个字段赋值为默认约束设定的值。

添加方法

create table 表名(字段1 数据类型1,字段2 数据类型2 default 默认值[ ,…]);

删除方法

alter table 表名 modify 字段名 数据类型[ 约束条件] ;

3 参照完整性

3.1 外键约束

特点

  • 某一表中某字段的值依赖于另一张表中某字段的值
  • 主键所在的表为主表,外键所在的表为从表
  • 每一个外键值必须与另一个表中的主键值相对应

添加方法

先创建主键所在的主表,再创建外键所在的从表

creat table 表名(字段名1 数据类型1,字段名2 数据类型2[,……,][constraint 外键约束名] foreign key(字段名) references 主表(主键字段));

删除方法

alter table 表名 drop foreign key 外键约束名;

先删除从表,再删除主表。先删除外键约束,再删除表。

4 用户自定义完整性

4.1 检查约束

特点

指定需要检查的限定条件

添加方法

creat table 表名 ( 字段名1 字段类型1, 字段名2 字段类型2 check(<限定条件>)[,……]);

删除方法

alter table 表名 drop constraint <检查约束名>;