关系型数据库表与表之间的三种关系
一、一对一关系:
定义:有两个表,在第一个表中的某一行只与第二个表中的一行相关,同时第二个表中的某一行,也只与第一个表中的一行相关,我们称这两个表为一对一关系。
例如:
第一张表:
ID |
姓名 |
国籍 |
贡献 |
1001 |
王大锤 |
中国 |
万万没想到 |
1002 |
吉泽明步 |
日本 |
动作艺术片 |
1003 |
刀锋女王 |
未知 |
计划生育 |
第二张表:
ID |
出生日期 |
逝世日期 |
1001 |
1988 |
NULL |
1002 |
1984 |
NULL |
1003 |
未知 |
3XXX |
这里的第一张表的每一行只与第二张表的一行相对应。
提示:一对一关系是比较少见的关系类型。但在某些情况下,还是会需要使用这种类型。
情况一:一个表包含了太多的数据列
情况二:将数据分离到不同的表,划分不同的安全级别。
情况三:将常用数据列抽取出来组成一个表
二、一对多关系:
定义:有多张表,第一个表中的行可以与第二个表中的一到多个行相关联,但是第二个表中的一行只能与第一个表中的一行相关联。
例如:
第一张表:
ID |
姓名 |
国籍 |
|
1001 |
王大锤 |
中国 |
|
1002 |
吉泽明步 |
日本 |
|
1003 |
刀锋女王 |
未知 |
|
ID |
节目ID |
1001 |
10001 |
1001 |
10002 |
1003 |
10003 |
1003 |
10004 |
第三张表:
节目ID |
节目名称 |
10001 |
万万没想到 |
10002 |
报告老板 |
10003 |
星际2 |
10004 |
英雄联盟 |
这里的第一张表的一行可以与第二张表的多行相对应;第二张表的一行与第三张表的一行相对应。
提示:一对多关系是最常见的关系类型。
三、多对多关系:
定义:有两个表,第一个表的一行可以与第二个表中的一到多个行相关联,同时,第二个表中的一行可以与第一个表中的一到多个行相关联。
例如:
第一张表:
ID |
姓名 |
国籍 |
|
1001 |
王大锤 |
中国 |
|
1002 |
吉泽明步 |
日本 |
|
1003 |
刀锋女王 |
未知 |
|
ID |
节目ID |
1001 |
10001 |
1001 |
10002 |
1003 |
10003 |
1003 |
10004 |
第三张表:
节目ID |
节目名称 |
10001 |
万万没想到 |
10002 |
报告老板 |
10003 |
星际2 |
10004 |
英雄联盟 |