多对多关系 | 学习笔记

简介: 快速学习多对多关系。

开发者学堂课程【Servlet 入门:多对多关系】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/36/detail/815


多对多关系


内容介绍

一、多对多关系


一、多对多关系

在表中建立多对多关系需要使用中间表,即需要三张表,在中间表中使用两个外键,分别引用其他两个表的主键。

create table student(

sid int PRIMARY REY,

);

create table teacher(

tid int PRIMARY KEY,

);

create table stu_tea(

sid int,

tid int,

ADD CONSTRAINT fk_stu_tea_sid FOREIGN KEY(sid) REFERENCES student(sid),

ADD CONSTRAINT fk_stu tea_tid FOREIGN KEY(tid) REFERENCES teacher(tid)

);

这时在 stu_tea 这个中间表中的每条记录都是来说明 student teacher 表的关系

例如在 stu_tea 表中的记录:sid1001tid 2001,这说明编号为1001的学生有一个编号为2001的老师

sid   tid

101  201 /*编号为101的学生有一个编号为203的老师*/

101  202 /*编号为102的学生有一个编号为201的老师*/

101  203 /*编号为102的学生有一个编号为204的老师*/

102  201 /*编号为101的学生有一个编号为201的老师*/

102  204 /*编号为101的学生有一个编号为202的老师*/

CREATE TABLE student

sid INT PRIMARY KEY AUTO_INCREMENT,

sname VARCHAR(50)

CREATE TABLE teacher(

tid INT PRIMARY KEY AUTO_INCREMENT,

tname VARCHAR(50)

);

CREATE TABLE stu_tea(

sid INT,

tid INI,  

CONSTRAINT fk_student FOREIGN KEY(sid) REFERENCES student(sid),

CONSTRAINT fk_teacher FOREIGN KEY(tid) REFERENCES teacher(tid)

);

INSERT INTO student VALUES(NULL,'刘德华');

INSERT INTO student VALUES(NULL,'梁朝伟');

INSERT INTO student VALUES (NULL,'黄日华');

INSERT INTO student VALUES(NULL,'苗侨伟');

INSERT INTO student VALUES(NULL,'汤朕业');

INSERT INTO teacher VALUES(NULL,'崔老师");

INSERT INTO teacher VALUES(NULL,'刘老师");

INSERT INTO teacher VALUES(NULL,'石老师");

SELECT * EROM student;

SELECT * FROM teacher;

INSERT INTO stu_tea VALUES(1, 1);

INSERT INTO stu_tea VALUES(2, 1);

INSERT INTO stu_tea VALUES(3, 1);

INSERT INTO stu_tea VALUES(4, 1);

INSERT INTO stu_tea VALUES(5, 1);

INSERT INTO stu_tea VALUES(2, 2);

INSERT INTO stu_tea VALUES(3, 2);

INSERT INTO stu tea VALUES(4, 2);  

INSERT INTO stu_tea VALUES(3, 3);

INSERT INTO stu_tea VALUES(4, 3);

INSERT INTO stu_tea VALUES(5, 3);  

BELECT FROM stu_tea;1.png

相关文章
|
存储 机器学习/深度学习 算法
Python 图像处理实用指南:1~5
Python 图像处理实用指南:1~5
1259 0
|
存储 XML Java
Flowable工作流-高级篇
Flowable工作流-高级篇
6080 0
|
7月前
|
存储 机器学习/深度学习 数据挖掘
数据湖 vs 数据仓库:你家到底该买冰箱还是建个地下室?
数据湖 vs 数据仓库:你家到底该买冰箱还是建个地下室?
1003 17
|
算法 API 开发工具
阿里云百炼平台综合评测
阿里云百炼作为一站式大模型开发平台,提供了从模型服务到应用开发的完整工具链。本文将基于实际搭建流程能力和模型训练的体验,对阿里云百炼平台进行详细评测。
729 3
|
安全 前端开发 Java
微服务网关及其配置
微服务网关及其配置
516 12
|
负载均衡 安全 Java
微服务 Gateway 使用详解
网关(Gateway)是连接不同网络并进行数据转发的关键组件。在互联网中,路由器常作为默认网关;在现代操作系统中,网关指本地网络上转发数据包的设备。Spring Cloud Gateway是一款基于Spring Framework的API网关,具备反向代理、高性能、负载均衡、安全控制、限流熔断、日志监控等功能。通过简单配置即可实现请求路由和转发,适用于微服务架构中的集中控制、解耦客户端与服务、自动服务发现等场景,提升系统安全性与可扩展性。
1530 4
|
安全 算法 网络安全
信息安全:VPN 技术原理与应用
信息安全:VPN 技术原理与应用
976 2
|
分布式计算 Java API
深入解析Java中的Lambda表达式及其应用
本文将深入探讨Java中Lambda表达式的定义、优势及其在实际编程中的应用。通过具体示例,帮助读者更好地理解和使用这一强大的编程工具。
幅度调制与角度调制 2
幅度调制与角度调制
473 0
|
关系型数据库 Java MySQL