多对多关系 | 学习笔记

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

开发者学堂课程【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

相关文章
|
3月前
|
SQL 缓存 Java
Hibernae - 双向多对一关联关系映射
Hibernae - 双向多对一关联关系映射
45 0
|
10月前
|
SQL XML 数据格式
mybatis-关联关系&一对多关联&多对一关联&多对多
mybatis-关联关系&一对多关联&多对一关联&多对多
|
存储 Java 数据库
JPA实现多对多关系
JPA实现多对多关系
127 0
|
Java 数据库连接 数据库
多对一的处理 | 学习笔记
快速学习多对一的处理
多对一的处理 | 学习笔记
|
XML Java 数据库连接
一对多的处理| 学习笔记
快速学习一对多的处理。
|
容器
getChildFragmentManager和getsupportFragmentManager和getFragmentManager的关系
getChildFragmentManager和getsupportFragmentManager和getFragmentManager的关系
|
存储 关系型数据库 数据库
[译] 如何用 Room 处理一对一,一对多,多对多关系?
[译] 如何用 Room 处理一对一,一对多,多对多关系?
[译] 如何用 Room 处理一对一,一对多,多对多关系?
|
数据库 开发者
一对一关系 | 学习笔记
快速学习一对一关系。
125 0
一对一关系 | 学习笔记
|
数据库 开发者 Java
多对一的处理 | 学习笔记
快速学习多对一的处理。
102 0
多对一的处理 | 学习笔记
|
设计模式 开发框架 Oracle
多对多关系 | 学习笔记
快速学习多对多关系。