1.表关系分类:
总体可以分为三类: 一对一 、一对多(多对一) 、多对多
2.如何区分表与表之间是什么关系?
#分析步骤:
#多对一/一对多
#1.站在左表的角度去看右表(情况一)
如果左表中的一条记录,对应右表中多条记录.那么他们的关系则为 一对多 关系.约束关系为:左表普通字段, 对应右表foreignkey字段.
注意:如果左表与右表的情况反之.则关系为 多对一 关系.约束关系为:左表foreignkey字段, 对应右表普通字段.
#一对一
#2.站在左表的角度去看右表(情况二)
如果左表中的一条记录 对应 右表中的一条记录. 则关系为 一对一关系.
约束关系为:左表foreign key字段上 添加唯一(unique)约束, 对应右表 关联字段.
或者:右表foreign key字段上 添加唯一(unique)约束, 对应右表 关联字段.
#多对多
#3.站在左表和右表同时去看(情况三)
如果左表中的一条记录 对应 右表中的多条记录,并且右表中的一条记录同时也对应左表的多条记录. 那么这种关系 则 多对多 关系.
这种关系需要定义一个这两张表的[关系表]来专门存放二者的关系
3.建立表关系
1.一对多关系
例如:一个人可以拥有多辆汽车,要求查询某个人拥有的所有车辆。
分析:人和车辆分别单独建表,那么如何将两个表关联呢?有个巧妙的方法,在车辆的表中加个外键字段(人的编号)即可。
* (思路小结:’建两个表,一’方不动,’多’方添加一个外键字段)*


//建立人员表CREATE TABLEpeople(
idVARCHAR(12) PRIMARY KEY,
snameVARCHAR(12),
ageINT,
sexCHAR(1)
);INSERT INTO people VALUES('H001','小王',27,'1');INSERT INTO people VALUES('H002','小明',24,'1');INSERT INTO people VALUES('H003','张慧',28,'0');INSERT INTO people VALUES('H004','李小燕',35,'0');INSERT INTO people VALUES('H005','王大拿',29,'1');INSERT INTO people VALUES('H006','周强

本文介绍了MySQL中表与表之间的三种关系:一对一、一对多和多对多,并通过示例详细解释了如何建立这些关系。对于一对一关系,通过在从表的外键上添加唯一约束实现;一对多关系中,一方表不变,另一方表添加外键字段;多对多关系则需要创建一个关系表来存储双方的关联。
最低0.47元/天 解锁文章
463

被折叠的 条评论
为什么被折叠?



