SQL的一对多,多对一,一对一,多对多什么意思?

我想请分析下,SQL的一对多,多对一,一对一,多对多什么意思?
最新回答
酱紫—喵

2024-11-27 08:16:48

1、一对多:比如说一个班级有很多学生,可是这个班级只有一个班主任。在这个班级中随便找一个人,就会知道他们的班主任是谁;知道了这个班主任就会知道有哪几个学生。这里班主任和学生的关系就是一对多。

2、多对一:比如说一个班级有很多学生,可是这个班级只有一个班主任。在这个班级中随便找一个人,就会知道他们的班主任是谁;知道了这个班主任就会知道有哪几个学生。这里学生和班主任的关系就是多对一。

3、一对一:比如说一个班级有很多学生,他们分别有不同的学号。一个学生对应一个学号,一个学号对应一个学生;通过学号能找到学生,通过学生也能得到学号,不会重复。这里学生和学号的关系就是一对一。

4、多对多:比如说一个班级有很多学生,他们有语文课、数学课、英语课等很多课。一门课有很多人上,一个人上很多门课。这里学生和课程的关系就是多对多。

1、一对一的使用方法

(1)使用嵌套结果映射来处理重复的联合结果的子集 。

(2)通过执行另外一个SQL映射语句来返回预期的复杂类型。

2、一对多的实现方法

在多的一方的表里面,添加外键。

3、多对多的实现方法

多对多,必须要通过单独的一张表来表示。

未与你

2024-11-27 14:10:38

举个例子:
你有3个表
学生表(学生id
学生姓名)
课程表(课程id
课程名)
成绩表
(学生id
课程id
分数)
班级表(班级id
学生id)
这里的班级表跟学生表就是一对多
一个班级包含了很多学生
反过来就是多对一
这里的课程表就是多对多
一门课对应多个学生选择
一个学生也可以有多个课程可以选
至于一对一的话
教授与学生的关系
一般一个教授就对应一个学生