mysql 数据库一对一,一对多,多对多实例

这篇博客通过实例详细介绍了MySQL中的一对一、一对多和多对多关系。其中包括学生表与课程表的多对多关系,学生与班级的一对多关系,老师与课程的一对一关系。文章还展示了如何创建相关表结构,插入数据,并进行了多表联合查询,展示学生姓名、班级、课程、老师和分数等信息。
摘要由CSDN通过智能技术生成

学生表和课程表可以多对多

一个学生可以学多门课程

一门课程可以有多个学生: 多对多

一个学生对应一个班级

一个班级对应多个学生: 一对多

一个老师对应多个学生

多个学生对应一个老师:一对多

一个老师教一门课

一门课对应一个老师: 一对一

一对多(foreign key):
学生表要关联班级表,多个学生属于一个班级. 班级是被关联的表

创建班级表
create table class(
-> id int primary key auto_increment,
-> caption char(20)
-> );

插入一条数据
insert into class(caption) values(‘三年二班’),(‘一年三班’),(‘三年一班’);

创建学生表
create table student (
-> id int primary key auto_increment,
-> name varchar(20),
-> sex enum(‘male’,‘female’) default ‘male’,
-> class_id int,
-> foreign key(class_id) references class(id)
-> );

1:n也就是一对多的形式,把外键放在学生里面

插入学生数据和外键值
insert into student(name,class_id) values(‘钢炮’,1),(‘狗蛋’,2),(‘猪猪’,3);

创建教师表

对这个班级来说,一门课程只有一个老师,一个老师只会教一门课程. 所以是一对一的关系
create table teacher(
->id int primary key auto_increment

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值