MYSQL学习笔记21: 多表查询

多表查询


多表关系

  • 一对多(多对一)

  • 多对多

  • 一对一



一对多(多对一)关系

多对多关系

创建学生表
create table student(
id int auto_increment primary key comment '主键ID',
name varchar(10) comment '姓名',
no varchar(10) comment '学号'
) comment '学生表';

插入数据

insert into student values
(null,'AAA','2000100101'),
(null,'BB','2000100102'),
(null,'CCC','2000100103'),
(null,'DDD','2000100104');

创建课程表
create table course(
id int auto_increment primary key comment '主键ID',
name varchar(10) comment '课程名称'
) comment '课程表';

插入数据

insert into course values
(null,'java'),
(null,'php'),
(null,'mysql'),
(null,'hadoop');

创建关联表(中间表)

外键,用studentID字段关联学生表的id

外键,用courseID字段关联课程表的id

create table student_course(
id int auto_increment primary key comment '主键',
studentId int not null comment '学生id',
courseId int not null comment '课程id',
constraint fk_courseId foreign key (courseId) references course(id),
constraint fk_studentId foreign key (studentId) references student(id)
) comment '学生课程中间表(选课表)';

插入数据

insert into student_course values
(null,1,1),
(null,1,2),
(null,1,3),
(null,2,2),
(null,2,3),
(null,3,4);

在图中查看表关系


一对一关系

创建用户表
create table tb_user(
id int auto_increment primary key comment '主键id',
name varchar(10) comment '姓名',
age int comment '年龄',
gender char(1) comment '1:男, 2:女',
phone char(11) comment '手机号'
) comment '用户基本信息';

插入数据

insert into tb_user(id,name,age,gender,phone) values
(null,'AA',45,'1','18800001111'),
(null,'BB',35,'2','18800001112'),
(null,'CC',55,'1','18800001113'),
(null,'DDD',50,'1','1880000114');

创建教育信息表
create table tb_user_edu(
id int auto_increment primary key comment '主键id',
degree varchar(20) comment '学历',
major varchar(50) comment '专业',
primarySchool varchar(50) comment '小学',
middleSchool varchar(50) comment '中学',
university varchar(50) comment '大学',
userid int unique comment '用户id',
constraint fk_userid foreign key (userid) references tb_user(id)
) comment '用户教育信息表';

插入数据

insert into tb_user_edu(id,degree,major,primarySchool,middleSchool,university,userid) values
(null,'本科','舞蹈','XXX第一小学','XXX第一中学','XXX舞蹈学院',1),
(null,'硕士','表演','XXX第一小学','XXX第一中学','XXX表演学院',2),
(null,'本科','英语','XXX第一小学','XXX第一中学','XXX英语学院',3),
(null,'本科','应用数学','XXX第一小学','XXX第一中学','XXX数学学院',4);

外键userid关联了主表tb_user的主键id

posted @   HIK4RU44  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示