mysql表结构,一对一,一对多,多对多

本文通过学生选课和选学校的例子,详细介绍了如何在MySQL中建立一对一、一对多和多对多的关系。具体包括学生表、学生详情表、课程表、学院表和中间表的构建,展示了数据库表结构的设计。
摘要由CSDN通过智能技术生成

这里拿学生选课和选学校来举例子

一共有4张表(中间表先不算)

  • 1.学生表
  • 2.学生详情表
  • 3.课程表
  • 4.学院表

关系有3种

  • 一对一

  • 一对多

  • 多对多

学生表和学生详情表构成一对一关系(一个学生对应一个学生详情)
学生表和学院表构成一对多关系(一个学生只能选一个学院,一个学院可以选多个学生)
学生表和课程表构成多对多关系(一个学生可以选多门课,一个课程可以包含多个学生)

------------------------------!!!开始建表!!!--------------------------

1.学院表(与学生表构成一对多)

朴实无华的学院表,主键d_id
         学院名

<

MySQL中,一对多和多对一的查询可以通过使用JOIN语句或子查询来实现。 一对多关联查询可以使用LEFT JOIN语句来实现。例如,使用以下查询语句可以查询学生(student)和课程(course)的信息:SELECT s.name, c.c_name FROM student AS s LEFT JOIN course AS c ON c.s_id = s.id; [2这将返回学生的姓名以及他们所选的课程的名称。 多对一关联查询可以使用子查询来实现。例如,使用以下查询语句可以查询学生(student)和课程(course)的信息:SELECT s.name, (SELECT group_concat(course.c_name) FROM course WHERE course.s_id = s.id) FROM student AS s; [3这将返回学生的姓名以及他们所选的课程的名称,多个课程名称之间使用逗号分隔。 需要注意的是,这只是一种实现一对多和多对一查询的方法,具体的查询方式可能会根据数据结构和需求而有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [mysql一对多关联查询分页错误问题的解决方法](https://download.csdn.net/download/weixin_38722348/12824943)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MySQL 一对多查询](https://blog.csdn.net/weixin_33331063/article/details/113119944)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值