(多对多关系)

马克-to-win:Teacher表:两列id,name。
Studnet表: 三列:id,name,age
TeacherStudent表(关系表):三列:id,tid,sid

create table TeacherStudent(id int not null,tid int not null,sid int not null);

2) teacher and student:(一个老师可能有多个学生,一个学生可能有多个老师)

qixy有两个学生:liyaohua and fuwenlong, huanglaosh老师有一个学生--->fuwenlong

INSERT INTO TeacherStudent (id,tid,sid) VALUES(1,1,1);

INSERT INTO TeacherStudent (id,tid,sid) VALUES(2,1,2);

INSERT INTO TeacherStudent (id,tid,sid) VALUES(3,2,2);

qixy的学生显示出来。

select * from Teacher t,Student s,TeacherStudent ts where t.name='qixy' and t.id=ts.tid and s.id=ts.sid;

+----+------+----+-----------+------+----+-----+-----+
| id | name | id | name      | age  | id | tid | sid |
+----+------+----+-----------+------+----+-----+-----+
|  1 | qixy |  1 | liyaohua  |   25 |  1 |   1 |   1 |
|  1 | qixy |  2 | fuwenlong |   26 |  2 |   1 |   2 |
+----+------+----+-----------+------+----+-----+-----+

huanglaosh的学生显示出来。

select * from Teacher t,Student s,TeacherStudent ts where t.name='huanglaosh' and t.id=ts.tid and s.id=ts.sid;

+----+------------+----+-----------+------+----+-----+-----+
| id | name       | id | name      | age  | id | tid | sid |
+----+------------+----+-----------+------+----+-----+-----+
|  2 | huanglaosh |  2 | fuwenlong |   26 |  3 |   2 |   2 |
+----+------------+----+-----------+------+----+-----+-----+

fuwenlong的老师显示出来。

select * from Teacher t,Student s,TeacherStudent ts where s.name='fuwenlong' and t.id=ts.tid and s.id=ts.sid;

+----+------------+----+-----------+------+----+-----+-----+

| id | name       | id | name      | age  | id | tid | sid |
+----+------------+----+-----------+------+----+-----+-----+
|  1 | qixy       |  2 | fuwenlong |   26 |  2 |   1 |   2 |
|  2 | huanglaosh |  2 | fuwenlong |   26 |  3 |   2 |   2 |
+----+------------+----+-----------+------+----+-----+-----+

参考一下以下游动的同等写法:(未来springJdbc或mybatisxxxxx的某种技术中也许用的着,因为它严格限制单表游动)

select name from Student where id in (select sid from TeacherStudent  where tid in (select id from Teacher where name='qixy')) ;

结果:

+-----------+
| name      |
+-----------+
| liyaohua  |
| fuwenlong |
+-----------+

更多请看下节:https://blog.csdn.net/qq_44591615/article/details/109205764

数据库表中多对多关系怎么设计?相关推荐

  1. 消除数据库表中的重复组

    重复组是在整个数据库表中重复的一系列字段/属性.大型和小型组织都面临着一个普遍的问题,这个问题可能会带来多种后果.例如,在不同区域中存在的同一组信息会导致数据冗余和数据不一致.而且,所有这些重复的数据 ...

  2. 关系型数据库表之间的联系[关系]详解

    关系型数据库表之间的联系[关系]详解 在表中,行和列的逻辑顺序无关紧要.每个表至少包含一列,该列被称为主键,它唯一地标识了表中的每一行. 键是表中扮演特殊角色的列,有两种键:主键.外键. 主键(Pri ...

  3. 【唠叨两句】如何将一张树型结构的Excel表格中的数据导入到多张数据库表中...

    小弟昨天遇到一个相对比较棘手的问题,就像标题说的那样.如何将一张树型结构的Excel表格中的数据导入到多张数据库表中,在现实中实际是七张数据库表,这七张表之间有着有着相对比较复杂的主外键关系,对于我这 ...

  4. MySQL学习笔记03【数据库表的CRUD操作、数据库表中记录的基本操作、客户端图形化界面工具SQLyog】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  5. 在一个电子商务网站应用中,涉及的实体信息类有很多,比如用户类User和用户地址类Address; 而每一个实体类的对象信息要存储到相应的数据库表中,如userTable和addressTable。

      在一个电子商务网站应用中,涉及的实体信息类有很多,比如用户类User和用户地址类Address; 而每一个实体类的对象信息要存储到相应的数据库表中,如userTable和addressTable. ...

  6. Oracle数据库表中字段顺序的修改方法

    Oracle数据库表中字段顺序的修改方法 这篇文章主要给大家介绍了关于Oracle数据库表中字段顺序的修改方法,在介绍修改的方法之前先给大家介绍了Oracle数据库表新建字段的方法,文中通过示例代码介 ...

  7. Eclipse搭建SSH环境实现Struts2分页显示mysql数据库表中内容

    2019独角兽企业重金招聘Python工程师标准>>> 摘要 学习(Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程),尝试搭建ssh框架 ...

  8. oracle 表字段顺序_如何更改Oracle数据库表中字段顺序

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

  9. 测试踩坑 - 当已有接口(或数据库表中)新增字段时,都需要注意哪些测试点?

    最新在测试的时候,遇到了几个典型问题,都是在原有接口(或数据库表中)进行需求迭代时,出现的问题.我稍微总结一下,作为后续测试的经验教训. 问题一.数据库表中新增字段,但开发将这几个字段设置成了非空字段 ...

最新文章

  1. golang 文件操作 创建 读写 复制移动 权限 删除
  2. YoloV5 最强剪枝技术 模型压缩,3ms推理的YoloV5mAP60
  3. ThreadPoolExecutor 八种拒绝策略,对的,不是4种!
  4. 小s结尾与大S结尾的汇编语言差异
  5. reactjs脚手架目录结构说明
  6. java语法特点是什么意思_java的语法是什么意思
  7. MySQL【环境搭建 02】Linux 非 root 用户部署 mysql-5.7.28 设置开机启动及问题汇总(含云盘资源)
  8. Python 之 Python2 和 Python3 的区别
  9. 椭圆形中间一个大写的v_Shift键在 Word 中的 9 个经典操作,第一个你可能就不知道!【Word教程】...
  10. 计算机操作员高级教学大纲,计算机操作员课程教学大纲.doc
  11. 简单逆向26(c++函数修饰名,md5,动态调试,算法逆向)
  12. java 求反正切函数 角度,弧度 。 arctanx
  13. 年薪翻倍的100篇面经:如何转型AI拿到阿里等大厂的40万offer
  14. 高德地图地理编码和逆地理编码,以及逆地理编码的时候如何去掉省、市、镇
  15. ICP许可证怎么申请?
  16. mysql procedure 存储过程
  17. python opencv 锐化_图像增强、锐化,利用 Python-OpenCV 来实现 4 种方法!
  18. 悟透delphi 第二章 DELPHI与WIN32时空
  19. MATLAB通信工具箱仿真16QAM系统
  20. 社群营销的方法和技巧ppt_2019社群运营技巧丨让微信社群活跃度迅速飙升的5个方法...

热门文章

  1. 为什么我家里修个房子,就是这么不容易?
  2. Applese 的QQ群--(判断图是否成环)
  3. mysql 视图使用 WITH
  4. 天创速盈简述静态创意是怎么收费的呢?
  5. 数据预处理:数据离散化
  6. 《格蠹汇编》读书笔记—windbg的使用
  7. 利用python画钻石_Python空心钻石
  8. Linux中关闭进程
  9. 让世界惊艳的中国造!宏宇用科技创新打造“新型石材”
  10. 用wegame卡在正在连接服务器,饥荒wegame正在启动服务器 | 手游网游页游攻略大全...