mysql 外键约束的总结
外键约束注重理解
笛卡尔积
[1,2,3] [a,b,c]
1a,2a,3a,1b,2b,3b,1c,2c,3c
总结:表关系的作用 把相同的数据抽离出来 作为一个单独的表来使用 更方便与维护
外键约束:用来把两张表的关系 关联起来 用来约束列的数据的
要使用外键约束:1.被引用的表 一定要有主键(只有主键才能被引用)2.引用表的列和被引用表的主键 类型一定要保持一致 3.引擎 InnoDB
约束完成之后 就可以使两张表中的关系得到映射的同时,保证数据不会错乱
链表查询:查询结果是笛卡尔积 并不是我们需要的结果 所以要添加一个条件对结果进行筛选 关系对应的条件
-
外键约束 一对多的关系
例子 : 学生与班级对应关系
学生表
班级表
设置外键的约束关系:
对表进行查询WHERE添加查询条件,以免出现笛卡尔积的现象
**SELECT stu.,class. FROM stu,class WHERE stu.s_class
=class.c_id
;**
-
外键约束 多对多的关系
例子 :亮剑中两大猪脚的部队配置
两大猪脚:
队伍配置:
再创建一个order表用来对另外两个表进行串联
设置外键
对order表进行查询会发现order已经成功的将另外两个表串联在一起了. SELECT people.*,thing.* FROM `people`,`thing`,`order` WHERE `people`.`p_id`=`order`.`o_people` AND `thing`.`t_id`=`order`.`o_thing`;