1.约束的作用就是为了保证表中数据的有效性,完整性.
约束直接添加在列的后面,这种约束称为为列级约束.
约束没有添加在列的后面,这种约束称为表级约束.
2.约束的类型:
2.1非空约束(not null)
非空约束not null约束的字段值不能为null,not null只有列级约束,没有表级约束.
使用方法:在建表的时候加在数据类型之后,例如:
2.2唯一性约束(unique)唯一性约束可以为空
唯一性约束unique约束的字段中的值不能重复,但可以为null,可以多个字段联合起来使用一个唯一性约束,需要用表级约束.
第一种使用方法(给某个字段添加唯一性约束):
这种写法叫做列级约束.
第二种方法(多个字段联合起来使用一个唯一性约束)
这种写法叫做表级约束.
2.3主键约束(primary key简称PK)
在mysql中,如果一个字段同时被not null和unique修饰,则该字段自动变成主键字段.
主键值是每一行记录的唯一标识.
任何一张表都应该有主键,没有主键,表无效.
主键的特征:not null+unique(主键值不能是null,同时也不能重复)
多个字段联合起来做主键称为复合主键,在平时,建议使用单一主键.
一张表,主键约束只能添加一个,主键值的数据类型建议使用int,bigint,char,主键值一般都是定长的.
自然主键:主键值是一个自然数,和业务没关系.
业务主键:主键值和业务紧密相关
在平时推荐使用自然主键.
单一主键:
auto_increment表示从1开始自增,插入数据时可以直接输入name,添加在列后面,是列级约束.
复合主键:
没有添加在列后面,是表级约束.
2.4外键约束(foreign key简称FK)
外键约束需要两张表联合起来使用,有外键的表称为子表,没有外键的表称为父表,主要作用就是为了限制子表中某一字段的值只能为附表中某一字段的值.
外键约束的使用方法:
注意:子表中的外键引用父表中某个字段的值,被引用的这个字段可以不是主键,但必须具有唯一性unique!!!.
外键可以为null.
删除表的顺序:先删子,再删父.
创建表的顺序:先建父,再建子.
删除数据的顺序:先删子,再删父.
插入数据的顺序:先插父,再插子.
2.5检查约束(check)