下面以一个简单的学生选课系统为例,来说明MySQL如何进行多表操作。
CREATE TABLE student ( id INT NOT NULL PRIMARY KEY, name VARCHAR(20) NOT NULL, sex VARCHAR(10) NOT NULL, age INT NOT NULL, class_id INT NOT NULL ); CREATE TABLE class ( id INT NOT NULL PRIMARY KEY, name VARCHAR(20) NOT NULL ); CREATE TABLE score ( id INT NOT NULL PRIMARY KEY, student_id INT NOT NULL, class_id INT NOT NULL, score INT NOT NULL );
以上代码创建了三张表依次为student、class和score。其中,student表和class表是基础表,score表是由这两个表关联而成的中间表。
下面大家通过一些SQL语句来演示MySQL数据库多表操作:
-- 查询每个学生的总分数 SELECT student.name, SUM(score.score) FROM student, score WHERE student.id = score.student_id GROUP BY student.id; -- 查询每个班级的平均分数 SELECT class.name, AVG(score.score) FROM class, score WHERE class.id = score.class_id GROUP BY class_id; -- 查询某个学生所选课程及成绩 SELECT class.name, score.score FROM class, score WHERE class.id = score.class_id AND score.student_id = 1;
以上代码展示了MySQL如何通过表之间的关联,进行多表操作。其中,通过JOIN语句,大家可以在需要时将基础表和中间表进行关联,以便查询和处理数据。