约束与表关系

约束

一些限制条件

非空约束not null

不希望队名为空,就在创建表的时候给队名这个字段加上not null的约束

队名不能为空,只插id不插队名就会报错

默认约束default

给一个字段设置默认值,这样字段的值也不会为空

主键约束primary key

保证字段不为空且唯一
id设为主键则唯一,不能再插入id=1的数据

主键支持自增
每次插入新数据id都会+1,不需要额外给id赋值

外键约束foreign key

限制两表间的关系,一个表的外键必定是另一个表的主键,外键可以为空。
可以通过设置外键来使学生表和队伍表实现强关联

把students表的team_id作为外键,对应teams表的主键id

此时外键students表进行与外键有关的数据操作时会更为严苛,需要同时满足teams表才能完成操作
如学生表要插入team_id=3的数据,但teams没有id=3的数据,则会报错
如当主表students有team_id的数据时,引用表teams是不能被删除的,但students可以被删除
有外键说明存在一对多关系,外键对应多。如一个班可以有多个学生,班级是“一”,学生是“多”
外键存在于“多”即students表中,students表设置外键后不能删除teams表的原因是:
此时说明teams表正在被学生表引用

表关系

一对多关系

一个小组可以有多个学生,一个学生只能在一个小组
可以通过主键和外键建立一对多关系

多对多关系

一个老师可以教多个学生,一个学生也可以选个多个老师的课
通过第三张表关联老师和学生表就能建立多对多关系

就如同老师、学生、课程表那样

一对一关系

并不常见,因为大部分一对一关系的数据都放在一个表中存储

posted @ 2023-02-10 00:10  ben10044  阅读(18)  评论(0编辑  收藏  举报