mysql多对多案例
时间: 2023-08-16 07:17:23 浏览: 43
在MySQL中,可以通过创建多个表和使用适当的关联来实现多对多的关系。首先,我们需要创建学生信息表(students)和课程信息表(courses)。在学生信息表中,我们可以使用以下MySQL语句创建表:
CREATE TABLE students(
nid int not NULL auto_increment,
name VARCHAR(32),
PRIMARY KEY(nid)
);
在课程信息表中,我们可以使用以下MySQL语句创建表:
CREATE TABLE courses(
cid int not NULL auto_increment,
course VARCHAR(32),
PRIMARY KEY(cid)
);
接下来,我们需要创建一个关系表(course_to_students)来建立学生和课程之间的多对多关系。在关系表中,我们可以使用以下MySQL语句创建表:
CREATE TABLE course_to_students(
sid int,
cid int,
FOREIGN KEY(sid) REFERENCES students(nid),
FOREIGN KEY(cid) REFERENCES courses(cid)
);
在关系表中,sid列是学生信息表中的学生编号,cid列是课程信息表中的课程编号。通过在关系表中插入适当的数据,我们可以建立学生和课程之间的多对多关系。
例如,我们可以使用以下MySQL语句向学生信息表中插入数据:
INSERT INTO students(name) VALUES('amy'),('jeff'),('tom');
然后,我们可以使用以下MySQL语句向课程信息表中插入数据:
INSERT INTO courses(course) VALUES('Chinese'),('Math'),('English'),('History'),('MySql'),('Python'),('Tornado');
最后,我们可以使用以下MySQL语句向关系表中插入数据,建立学生和课程之间的多对多关系:
INSERT INTO course_to_students(sid, cid) VALUES(1, 1),(1, 2),(2, 2),(3, 3),(3, 4),(3, 5);
这样,我们就建立了一个简单的多对多关系的MySQL案例。通过适当的查询语句,我们可以查询到某个学生选择的所有课程或者选择某个课程的所有学生。
#### 引用[.reference_title]
- *1* *3* [【MySQL连表多对多】操作举例之【学生选课】](https://blog.csdn.net/lincoco49/article/details/90454004)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Mysql--多对多的案例详情](https://blog.csdn.net/chenmozhe22/article/details/80602126)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]