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

作者&投稿:系浅 (若有异议请与网页底部的电邮联系)
SQL的一对多,多对一,一对一,多对多什么意思?~

1、一对多:比如说一个班级有很多学生,可是这个班级只有一个班主任。在这个班级中随便找一个人,就会知道他们的班主任是谁;知道了这个班主任就会知道有哪几个学生。这里班主任和学生的关系就是一对多。
2、多对一:比如说一个班级有很多学生,可是这个班级只有一个班主任。在这个班级中随便找一个人,就会知道他们的班主任是谁;知道了这个班主任就会知道有哪几个学生。这里学生和班主任的关系就是多对一。
3、一对一:比如说一个班级有很多学生,他们分别有不同的学号。一个学生对应一个学号,一个学号对应一个学生;通过学号能找到学生,通过学生也能得到学号,不会重复。这里学生和学号的关系就是一对一。
4、多对多:比如说一个班级有很多学生,他们有语文课、数学课、英语课等很多课。一门课有很多人上,一个人上很多门课。这里学生和课程的关系就是多对多。
1、一对一的使用方法
(1)使用嵌套结果映射来处理重复的联合结果的子集 。
(2)通过执行另外一个SQL映射语句来返回预期的复杂类型。
2、一对多的实现方法
在多的一方的表里面,添加外键。
3、多对多的实现方法
多对多,必须要通过单独的一张表来表示。

拿你的学号,和课程来说吧。你和你的学号就是一对一的关系,因为一个学生只有一个学号(当然只同一阶段);
你和你的课程是一对多的关系 ,你一个人可以学很多门课程吧。课程和学生就是多对多的关系,一个学生可以学多门课程,而一门课程也会有很多名学生学习。简单就是这么理解

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

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

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

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



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

一对一:我有一个身份证号 ;
一对多:我有多张银行卡;
多对多:我是招行、交行、建行的客户,但是这些银行用户均过亿。

一对一:一个班级只有一个班长
多对一:多个班级是同一个班主任
一对多:一个班级有多个学生
多对对:班级有多个家长,其中同一个家长属于多个班级的家长,他的孩子们分别在多个班级上课

就是在数据库里,表与表之间的数据交换与提取,
例如有两表:表一(b中有字段mc,sl),表二(c中有字段mc,sl)
在查询分析器中输入
select b.mc,a.sl from b.a,c.b where a.mc=b.mc
就能看到表b,c中字段mc相同的数据信息了。


请给我讲讲在hibernate中,什么时候用“一对多”、“多对一”、“一对...
Class company{ private string companyName;private set Employees;...} 你一次查询公司Company company=hibernatedao.queryCompany(id);然后可以company.getEmployees()得到他的所有雇员,这就是一对多的好处 多对多举个例子就是订单和商品的关系,一张订单可以有许多商品,一个商品可以从属多个订单,所以...

请给我讲讲在hibernate中,什么时候用“一对多”、“多对一”、“一对...
Class company{ private string companyName;private set Employees;...} 你一次查询公司Company company=hibernatedao.queryCompany(id);然后可以company.getEmployees()得到他的所有雇员,这就是一对多的好处 多对多举个例子就是订单和商品的关系,一张订单可以有许多商品,一个商品可以从属多个订单,所以...

电路分析中kcl推广定律的广义结点什么意思
广义节点:是一个很抽象和应用很广泛的概念,通俗的说就是某个大环境中的一个点或者一段,好比公交车线路中的一个站台。节点类型分为:一对多,多对一,多对多等方式。“节点”一概念被广泛应用于许多领域。电力学中,节点是塔的若干部件的汇合点。kcl就是对于一个节点,流进节点的电流等于流出节点...

关于数据库一对多,多对一,多对多的问题
您好:你可以把你自己当成各个角色:1.顾客。对于图书来说,当然是1对多喽~一个人可以买好多书~2.顾客。对于订单来说,当然是1对1喽~一个人买了好多东西,每次产生的订单,只能自己用,而且订单是唯一的~~3管理员和图书的关系管理员可以管理很多图书,一本图书可以被很多管理管理啦~,4管理员和...

数据库:E-R图两个实体之间可以有两个关系吗???
可以有两个关系,例如教师和课程,教师教课程是多对多的关系,教师负责课程是一对多的关系。

一对多的关系,只写多对一有什么影响吗?
没影响,没影响.没影响\/没影响;;没影响ll没影响''

Spring配置映射关系时一对多、多对一和多对多关联到底有何区别,可否...
因为一个学生可以多次借书, "T_图书"与"T_学生借书记录"的关系也是一对多.因为一本书在不同时间可以被许多人借阅.实际上"一对多"与"多对一"这两个说法只是对一种关系的两种不同说话方式而已.例如,假设你有100本书.在这个语境下分析下面两句话"你有许多书"与"这些书都是你的",这两名话的区别是...

在数据库中,有两个关系R和S,它们分别是n目和m目关系。其中的n目和m目...
就是一个n对应多个m,一个m对应多个n;比如教师和学生的关系:一个学生可以有多个老师教,而一个老师又可以交多个学生,也就是所谓的多对多关系(n:m) 此外还有一对一(1:1),一对多(1:n),多对一关系

请求解题 要求用SQL语句完成下列题目
choice表是学生与岗位的关联关系,一对多或者多对一即多个学生在一个岗位,或者一个学生在多个岗位,那么先把这几张表关联查询一下。关联查询结果 然后使用group by分组函数和having聚合函数进行过滤。岗位数大于等于3的学生信息 第八题: 简单的数据插入语句格式,INSERT INTO语句有多种写法,不声明字段,...

在access中表之间如何建立联系?这种联系方式一种有几种?
access表之间共有三种联系:一对一、一对多、多对多。建立表之间的联系需要使用使用SQL语句。示例:1、拥有表a和表b。a中拥有属性sno(主码),表b中拥有属性sno(主码)。a与b建立一对一联系。SQL语句:FOREIGN KEY (sno) REFERENCES b(sno);2、spj中拥有属性sno(主码),表b中拥有属性sno(...

太和县13096462170: SQL的一对多,多对一,一对一,多对多什么意思? -
马吉蓉生: 1、一对多:比如说一个班级有很多学生,可是这个班级只有一个班主任.在这个班级中随便找一个人,就会知道他们的班主任是谁;知道了这个班主任就会知道有哪几个学生.这里班主任和学生的关系就是一对多. 2、多对一:比如说一个班...

太和县13096462170: sql 在同一张表筛选出一对多或一对一的数据? -
马吉蓉生: select 账号 ,count( 槽位端口) as 个数 from 表 group by 账号可以查出账号对应几个的 select 账号 from 表 group by 账号 having count(槽位端口)=1查出一对一的.一对多的 把=改成>

太和县13096462170: 建立数据库时,既然SQL语言可以实现多表连接,那为什么还要建立表间的一对一,一对多这些关系呢?
马吉蓉生: 一对一,一对多,多对多关系是设计数据库确定表与表之间的关系,是设计使数据库达到某一范式手段之一,数据库达到某一范式越高,数据库表中的一致性,完整性越强.这可以通过数学方式证明. SQL语言实现多表连接,已经是到了数据库使用阶段,通过你的sql操作实现你需要实现的功能. 就好像水库,前者是设计阶段,水坝越高,越坚固,越不可能溃坝.好像学生选课,删掉一门课程后,如果有外键,学生选课表想选出这门课绝对不可能了,没有的话可就难说. 后者是使用阶段,用闸门,水管还是水泵取水,就看你sql怎么写了. 两者在数据库系统实现的阶段不同,功能也不同,不一样的.

太和县13096462170: sql里面多对多查询语法及原理 -
马吉蓉生: 内连接:多对多共用的部分 select * from a,b where a.id = b.id 左连接:多对多共用部分加上左边表的全部 select * from a left join b on a.id=b.id 右连接:与左连接相反 select * from a right join b on a.id=b.id

太和县13096462170: 数据库中一对一,一对多,多对多,怎样建立关联 -
马吉蓉生: 你的问题有点大,不知从哪入手进行回答. 从大体上来讲,将a表的主键作为b表的一个外键,就可以建立a、b表的一一对应关系了.如果需要详细来讲,就需要你告知a、b表各自的字段和字段之间的关系.

太和县13096462170: 在SQL 数据库中建立表的一对一,一对多等关系,对于程序开发者而言,有什么帮助和优点? -
马吉蓉生: 你好!最直接的方便就是数据管理 第三:便于清晰明了的表示实物显示中的关系 第二,加快开发进度 第四:便于程序员了解业务联系第一 如果对你有帮助,望采纳.

太和县13096462170: sql一对多查询 -
马吉蓉生: 这应该是一个1对多的映射关系 1个员工可以对应多条业绩记录 那么可以设员工表的主键是员工id,并且作为业绩表的外键. 比如业绩表叫做achievement_table员工id对应的列为employee_id 比如员工表叫做employee_table 主键id为员工id,以...

太和县13096462170: sql 一对多的查询 -
马吉蓉生: select d.*, c.成绩, c.时间 from 主表 d, (select b.* from (select id, max(时间) max_date from 从表 group by id) a, 从表 b where a.id = b.id and a.max_date = b.时间) c where c.id = d.id

太和县13096462170: sql 数据库 一对多查询 -
马吉蓉生: 你怎么俩table1,后一个叫table2吧 执行以下语句 select t1.考试学号,t1.科目,t2.考试成绩 from(select a.科目,a.科目ID,b.考试学号 from(select 科目,科目ID from table1) as a,(select distinct 考试学号 from table2) as b) as t1 left join table2 as t2 on t1.科目ID=t2.科目ID and t1.考试学号=t2.考试学号 结果截图 下边还有几条没显示全,凑合看吧

太和县13096462170: SQL一个表对多个表,并且表关系是1对多怎么查询? -
马吉蓉生: SELECT a.name,b.A1,b.A2,c.B1,c.B2 FROM Person a,AAA b,BBB c where a.nameid=b.nameid and b.Aid=c.Bid

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网