MySQL三表联查及添加简析(mysql三表联查添加)
MySQL三表联查及添加简析
在MySQL的操作中,经常需要查询多张表的数据,这时候就需要用到联表查询了。联表查询可以让我们在查询数据时,同时获取多张表中的数据,方便我们进行数据分析和处理。本文将介绍MySQL的三表联查操作,并且介绍如何进行添加查询等常见操作。
1. 三表联查
三表联查指同时查询三张表的数据,并且通过某些字段进行关联。下面以三张表为例,来介绍如何进行三表联查。
假设我们有三张表,分别是学生信息表、课程表和选课表。三张表的关系如下图所示:
![三张表关系图](https://img-blog.csdn.net/20180403194649109?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTI3ODY0MzA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/85)
现在我们需要查询所有选修了“高等数学”这门课程的学生姓名和成绩,可以通过以下SQL语句实现:
SELECT s.name, c.grade
FROM student s INNER JOIN sc ON s.sno = sc.sno
INNER JOIN course c ON sc.cno = c.cno WHERE c.name = '高等数学';
其中,INNER JOIN是进行内连接,ON后面是指定连接条件。此外,我们也可以使用LEFT JOIN和RIGHT JOIN来进行左连接和右连接。
2. 添加查询
除了三表联查,我们还可以通过添加查询进行数据查询。假设我们需要查询选修了“高等数学”这门课程,但是成绩不及格的学生,可以通过以下SQL语句实现:
SELECT s.name, c.grade
FROM student s INNER JOIN sc ON s.sno = sc.sno
INNER JOIN course c ON sc.cno = c.cno WHERE c.name = '高等数学' AND c.grade
其中,AND是逻辑运算符,用于在WHERE语句中进行多个条件的筛选。
3. 数据添加
除了数据查询,我们也可以通过INSERT INTO语句向数据库中添加数据。假设我们要向选课表中添加一条数据,选修了“高等数学”这门课程的学号为001的学生,成绩为90分,可以通过以下SQL语句实现:
INSERT INTO sc (sno, cno, grade)
VALUES ('001', '001', 90);
其中,INSERT INTO是向表中插入数据的语句,(sno, cno, grade)表示要插入的字段,VALUES表示要插入的值。
综上所述,MySQL的三表联查、添加查询和数据添加等操作都是非常常见的数据库操作。在进行开发时,我们需要熟练掌握这些操作,并且根据实际需求进行灵活应用。