Mysql数据库的约束类型有:主键约束(Primary Key),外键约束(Foreign Key),非空约束(Not Null),唯一性约束(Unique),默认约束(Default)。
一.主键约束(Primary Key)
主键约束要求主键列的数据唯一,并且不能为空。主键分为两种类型:单字段主键和多字段联合主键。
1.单字段主键
在定义列的同时指定主键,语法规则:字段名 数据类型 Primary Key [默认值]
在定义完成所有列之后指定主键,语法规则:[Constraint<约束名>] Primary Key [字段名]
一般在建表时我们会选择将主键放在所有列后。
2.多字段联合主键
主键由多个字段联合组成。语法规则:Primary Key[字段1,字段2,....,字段n]
二.外键约束(Foreign Key)
外键用来在两个表的数据之间建立连接,它可以是一列或者多列。一个表可以有一个或者多个外键。一个表的外键可以为空,若不为空,则每一个外键值必须等于另一个表中主键的某个值。
外键的作用:保证数据应用的完整性。
主表(父表):对于两个具有关联关系的表而言,相关联字段中的主键所在的那个表即是主表。
从表(子表):对于两个具有关联关系的表而言,相关联字段中的外键所在的那个表即是从表。
创建外表的语法规则:[Constraint<外键名>]Foreign Key 字段名1[,字段名2,....] References<主表名> 主键列1 [,主键列2,....]
创建一个表test_1
定义数据表test_2,让它的主键deptId作为外键关联到的test_1的主键id,
在表test_2上添加了名称为test_deptId的外键约束,外键名称为deptId,其依赖于表test_2的主键id.
三.使用非空约束(Not Null)
非空约束指字段的值不能为空。
非空约束 语法规则:字段名 数据类型 not null
四.唯一性约束(Unique)
唯一性约束要求该列唯一,允许为空,但是只能出现一个空值。唯一约束可以保证一列或者几列不出现重复值。
非空约束的语法规则
1.在定义完列之后直接指定唯一约束
字段名 数据类型 unique
2.在定义完所有列之后指定唯一约束
[Constraint<约束名>] Unique(<字段名>)
声明:Unique在表中可以有一个或者多个字段声明,而Primary Key,只能有一个。
五.默认约束(Default)(最简单)
默认约束指定某列的默认值。
语法规则: 字段名 数据类型 Dfault 默认值
所有的知识点均来自《Mysql5.5从零开始学》 刘增杰 张少军 编著