20-基础SQL-多表查询

发布时间 2023-11-28 19:10:04作者: 马铃薯1

 

多表关系

项目开发过程中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为以下三种:

1. 一对多(多对一)

2. 多对多

案例1:创建学生表(student),课程表(course),学生课程关系表(student_course)

-- 多对多
-- 学生表
CREATE TABLE student(
    id int auto_increment comment "主键ID" primary key,
    name varchar(10) comment "姓名",
    no varchar(10) comment "学号"
) comment "学生表";

-- 课程表
CREATE TABLE course(
    id int auto_increment comment "主键ID" primary key,
    name varchar(10) comment "课程名称"
) comment "课程表";

-- 学生课程中间表
CREATE TABLE student_course(
    id int auto_increment comment "主键ID" primary key,
    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 "学生课程中间表";