表约束是在创建表的时候,设计⼀些表的约束条件,⽤来保证数据的合法性和数据的正确性。
常见的约束如下:
一、表约束
1.非空约束 not null
此约束可以用于表中的多个字段
2.唯一约束unique
一张表中可以有多个唯一约束
注意事项:
1.唯一约束中NULL表示’没有’
唯一约束中不仅可以插入NULL值,而且可以插入多个NULL值.
唯一约束中可以插入空值’ ',但空值不能重复插入.
2.1查看索引详情
show keys from 表名
3.主键约束primary key
primary key = unique + not null
特点:
1.主键可以由多个字段或单个字段组成
2.主键不能为空且必须唯一
3.一个表只能由一个主键
联合主键:
注意:
联合主键:多个字段联合起来形成的主键,因此需要多个字段同时不重复,那么就能插入
独立主键:只有一个字段作为主键,因此主键不能出现重复
常见面试题:
主键约束 VS唯一约束
1.一个表中主键索引只能有一个,而唯一约束可以有多个
2.唯一约束可以插入一个或多个NULL值,而主键索引不能插入NULL值
4.外键约束foreign key
外键可以插入一个或多个NULL
5.自增约束auto_increment
注意事项:
1.auto_increment 必须配合 key ⼀起使⽤,这个 key 可以是 primary key,foreign key,unique如果没有 key
就会报错。
2.auto_increment 必须配合整数数值使用
3.一个表中只能有一个auto_increment 自增约束
5.1delete 和 truncate 重置自增验证
delete不重置自增
truncate会重置自增
6.默认约束default
二、数据库设计三范式
2.1第一范式
表的每列要确保是最小的不可分割的原子值
好处:减小了数据冗余,更利于数据的维护和更新
2.2第二范式
一个表中的所有字段都必须和主键有关
利于维护和修改
2.3第三范式
确保每列都和主键列直接相关,⽽不是间接相关
三、表关系
1.一对一关系
2.一对多关系
3.多对多关系