MySQL三表关联简单易懂的教程(mysql中三表关联)
MySQL三表关联:简单易懂的教程
MySQL是一个功能强大的关系型数据库管理系统,常用于网站开发、数据存储和数据分析等领域。在实际开发过程中,经常需要对多个表进行关联查询,以获取更全面的信息。今天我们就来介绍一下MySQL三表关联查询的方法。
在进行三表关联查询之前,需要先了解一下MySQL中的三种关联方式:
1. 内连接(INNER JOIN)
内连接只返回两个表中共有的数据,也就是交集。使用INNER JOIN关键字连接两个表时,只显示两个表中满足连接条件的行。
2. 左连接(LEFT JOIN)
左连接返回左表中的所有数据,同时匹配右表中的数据。如果右表中没有匹配的数据,则显示NULL值。使用LEFT JOIN关键字连接两个表时,左表中的所有行都会显示,而右表中没有匹配的行会显示为NULL值。
3. 右连接(RIGHT JOIN)
右连接返回右表中的所有数据,同时匹配左表中的数据。如果左表中没有匹配的数据,则显示NULL值。使用RIGHT JOIN关键字连接两个表时,右表中的所有行都会显示,而左表中没有匹配的行会显示为NULL值。
在进行实际操作之前,我们需要先创建三个简单的表,包括学生信息表、课程信息表和成绩信息表。具体代码如下:
CREATE TABLE students(
id int(11) PRIMARY KEY, name varchar(50) NOT NULL,
age int(11) NOT NULL, gender varchar(10) NOT NULL
);
CREATE TABLE courses( id int(11) PRIMARY KEY,
name varchar(50) NOT NULL, teacher varchar(50) NOT NULL
);
CREATE TABLE scores( student_id int(11) NOT NULL,
course_id int(11) NOT NULL, score int(11) NOT NULL,
PRIMARY KEY(student_id, course_id));
接下来,我们向学生信息表、课程信息表、成绩信息表中添加一些数据。具体代码如下:
INSERT INTO students VALUES(1,'张三',18,'男');
INSERT INTO students VALUES(2,'李四',19,'女');INSERT INTO students VALUES(3,'王五',20,'男');
INSERT INTO courses VALUES(1,'数学','张老师');INSERT INTO courses VALUES(2,'英语','李老师');
INSERT INTO courses VALUES(3,'物理','周老师');
INSERT INTO scores VALUES(1,1,90);INSERT INTO scores VALUES(1,2,85);
INSERT INTO scores VALUES(1,3,80);INSERT INTO scores VALUES(2,1,70);
INSERT INTO scores VALUES(2,2,75);INSERT INTO scores VALUES(3,3,95);
完成数据的添加之后,我们可以进行三表关联查询了。假设我们现在需要查询每个学生所选的课程及成绩,同时显示课程的教师姓名。具体代码如下:
SELECT students.name, courses.name, courses.teacher, scores.score
FROM studentsINNER JOIN scores ON students.id = scores.student_id
INNER JOIN courses ON scores.course_id = courses.id;
运行以上代码,即可得到如下的查询结果:
姓名 课程名 教师姓名 分数
张三 数学 张老师 90张三 英语 李老师 85
张三 物理 周老师 80李四 数学 张老师 70
李四 英语 李老师 75王五 物理 周老师 95
以上就是MySQL三表关联查询的简单教程,通过学习,我们可以更好地使用MySQL进行数据查询和分析。