Mysql数据库的约束类型有:主键约束(Primary Key),外键约束(Foreign Key),非空约束(Not Null),唯一性约束(Unique),默认约束(Default)。

一.主键约束(Primary Key)

    主键约束要求主键列的数据唯一,并且不能为空。主键分为两种类型:单字段主键和多字段联合主键。

1.单字段主键

在定义列的同时指定主键,语法规则:字段名 数据类型 Primary Key [默认值]

mysql 主键 字符串 mysql主键的数据类型_字段

在定义完成所有列之后指定主键,语法规则:[Constraint<约束名>] Primary Key [字段名]

mysql 主键 字符串 mysql主键的数据类型_主键_02

一般在建表时我们会选择将主键放在所有列后。

2.多字段联合主键

主键由多个字段联合组成。语法规则:Primary Key[字段1,字段2,....,字段n]

mysql 主键 字符串 mysql主键的数据类型_mysql 主键 字符串_03

二.外键约束(Foreign Key)

      外键用来在两个表的数据之间建立连接,它可以是一列或者多列。一个表可以有一个或者多个外键。一个表的外键可以为空,若不为空,则每一个外键值必须等于另一个表中主键的某个值。

      外键的作用:保证数据应用的完整性。

      主表(父表):对于两个具有关联关系的表而言,相关联字段中的主键所在的那个表即是主表。

      从表(子表):对于两个具有关联关系的表而言,相关联字段中的外键所在的那个表即是从表。

     创建外表的语法规则:[Constraint<外键名>]Foreign Key 字段名1[,字段名2,....] References<主表名> 主键列1 [,主键列2,....] 

创建一个表test_1

mysql 主键 字符串 mysql主键的数据类型_主键_04

定义数据表test_2,让它的主键deptId作为外键关联到的test_1的主键id,

mysql 主键 字符串 mysql主键的数据类型_主键_05

在表test_2上添加了名称为test_deptId的外键约束,外键名称为deptId,其依赖于表test_2的主键id.

三.使用非空约束(Not Null)

     非空约束指字段的值不能为空。

     非空约束 语法规则:字段名 数据类型 not null

四.唯一性约束(Unique)

   唯一性约束要求该列唯一,允许为空,但是只能出现一个空值。唯一约束可以保证一列或者几列不出现重复值。

   非空约束的语法规则

   1.在定义完列之后直接指定唯一约束 

    字段名 数据类型 unique

   2.在定义完所有列之后指定唯一约束

     [Constraint<约束名>] Unique(<字段名>)

声明:Unique在表中可以有一个或者多个字段声明,而Primary Key,只能有一个。

五.默认约束(Default)(最简单)

    默认约束指定某列的默认值。

    语法规则: 字段名 数据类型 Dfault 默认值