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 students
INNER 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进行数据查询和分析。


数据运维技术 » MySQL三表关联简单易懂的教程(mysql中三表关联)