SQL的一对多,多对一,一对一,多对多啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL的一对多,多对一,一对一,多对多啥意思?相关的知识,希望对你有一定的参考价值。

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

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

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

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

1、一对一的使用方法

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

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

2、一对多的实现方法

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

3、多对多的实现方法

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

参考技术A 举个例子:
你有3个表
学生表(学生id 学生姓名)
课程表(课程id 课程名)
成绩表 (学生id 课程id 分数)
班级表(班级id 学生id)
这里的班级表跟学生表就是一对多 一个班级包含了很多学生 反过来就是多对一
这里的课程表就是多对多 一门课对应多个学生选择 一个学生也可以有多个课程可以选
至于一对一的话 教授与学生的关系 一般一个教授就对应一个学生本回答被提问者采纳
参考技术B 一对一:我有一个身份证号 ;
一对多:我有多张银行卡;
多对多:我是招行、交行、建行的客户,但是这些银行用户均过亿。
参考技术C 一对一:一个班级只有一个班长
多对一:多个班级是同一个班主任
一对多:一个班级有多个学生
多对对:班级有多个家长,其中同一个家长属于多个班级的家长,他的孩子们分别在多个班级上课
参考技术D 就是在数据库里,表与表之间的数据交换与提取,
例如有两表:表一(b中有字段mc,sl),表二(c中有字段mc,sl)
在查询分析器中输入
select b.mc,a.sl from b.a,c.b where a.mc=b.mc
就能看到表b,c中字段mc相同的数据信息了。

mybatis映射 一对一,一对多,多对多高级映射

MyBatis详解 与配置MyBatis+Spring+MySqlMyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,Mybatis 是一种“半自动化”的ORM实现。需要使用的Jar包:mybatis-3.0.2.jar(mybatis核心包)。mybatis-spring-1.0.0.jar(与Spring结合包)。MyBatis简介 MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,Mybatis 是一种“半自动化”的ORM实现。需要使用的Jar包:mybatis-3.0.2.jar(mybatis核心包)。mybatis-spring-1.0.0.jar(与Spring结合包)。 参考技术A access数据库?

以上是关于SQL的一对多,多对一,一对一,多对多啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

mybatis映射 一对一,一对多,多对多高级映射

laravel ORM 一对一 一对多 多对多 原生的MYSQL怎么写

李文杰老师给大家分享一篇干货Mybatis 一对一,一对多,多对一,多对多的理解

关联查询 一对多,多对一,多对多,自关联

MyBatis一对多,多对一,多对多

mybatis 一对一 一对多 多对多