MySQL学习笔记 ------ 连接查询
发布人:shili8
发布时间:2025-03-01 18:10
阅读次数:0
**MySQL 学习笔记 --- 连接查询**
连接查询是 MySQL 中一种非常重要的查询类型,它可以帮助我们从多个表中获取数据。连接查询可以使用 `JOIN` 关键字来实现。
###什么是连接查询?
连接查询是一种用于从两个或更多表中获取数据的查询方式。它通过将多个表连接起来,生成一个临时结果集,使得我们能够在一个 SQL语句中处理来自多个表的数据。
### 连接查询的类型MySQL 中有两种主要的连接查询类型:
1. **内连接(INNER JOIN)**:只返回两个表中都存在的记录。
2. **外连接(LEFT/RIGHT/FULL OUTER JOIN)**:返回一个表中所有的记录,另一个表中匹配的记录则显示为 NULL。
### 内连接(INNER JOIN)
内连接是最常用的连接查询类型。它只返回两个表中都存在的记录。
sqlSELECT * FROM 表1INNER JOIN 表2ON 表1.列名 = 表2.列名;
示例:
假设我们有两张表:`学生信息` 和 `成绩`,它们之间通过 `学号` 进行关联。我们想获取所有学生的姓名和对应的最高分数。
sqlCREATE TABLE 学生信息 ( 学号 INT PRIMARY KEY, 姓名 VARCHAR(20) ); INSERT INTO 学生信息 (学号, 姓名) VALUES (1, '张三'), (2, '李四'), (3, '王五'); CREATE TABLE 成绩 ( 学号 INT, 分数 DECIMAL(5,2), PRIMARY KEY (学号) ); INSERT INTO 成绩 (学号, 分数) VALUES (1,90.00), (2,80.00), (3,70.00);
sqlSELECT s.姓名, MAX(c.分数) AS 最高分数FROM 学生信息 sINNER JOIN 成绩 cON s.学号 = c.学号GROUP BY s.姓名;
结果:
| 姓名 | 最高分数 |
| --- | --- |
| 张三 |90.00 |
| 李四 |80.00 |
| 王五 |70.00 |
### 外连接(LEFT/RIGHT/FULL OUTER JOIN)
外连接用于返回一个表中所有的记录,另一个表中匹配的记录则显示为 NULL。
#### 左外连接(LEFT OUTER JOIN)
左外连接是将左边表中的所有记录与右边表进行匹配,如果没有匹配,则显示 NULL。
sqlSELECT * FROM 表1LEFT OUTER JOIN 表2ON 表1.列名 = 表2.列名;
示例:
假设我们有两张表:`学生信息` 和 `成绩`,它们之间通过 `学号` 进行关联。我们想获取所有学生的姓名和对应的最高分数。
sqlSELECT s.姓名, MAX(c.分数) AS 最高分数FROM 学生信息 sLEFT OUTER JOIN 成绩 cON s.学号 = c.学号GROUP BY s.姓名;
结果:
| 姓名 | 最高分数 |
| --- | --- |
| 张三 |90.00 |
| 李四 |80.00 |
| 王五 |70.00 |
| null | null |
#### 右外连接(RIGHT OUTER JOIN)
右外连接是将右边表中的所有记录与左边表进行匹配,如果没有匹配,则显示 NULL。
sqlSELECT * FROM 表1RIGHT OUTER JOIN 表2ON 表1.列名 = 表2.列名;
示例:
假设我们有两张表:`学生信息` 和 `成绩`,它们之间通过 `学号` 进行关联。我们想获取所有学生的姓名和对应的最高分数。
sqlSELECT s.姓名, MAX(c.分数) AS 最高分数FROM 学生信息 sRIGHT OUTER JOIN 成绩 cON s.学号 = c.学号GROUP BY s.姓名;
结果:
| 姓名 | 最高分数 |
| --- | --- |
| 张三 |90.00 |
| 李四 |80.00 |
| 王五 |70.00 |
#### 全外连接(FULL OUTER JOIN)
全外连接是将两个表中的所有记录进行匹配,如果没有匹配,则显示 NULL。
sqlSELECT * FROM 表1FULL OUTER JOIN 表2ON 表1.列名 = 表2.列名;
示例:
假设我们有两张表:`学生信息` 和 `成绩`,它们之间通过 `学号` 进行关联。我们想获取所有学生的姓名和对应的最高分数。
sqlSELECT s.姓名, MAX(c.分数) AS 最高分数FROM 学生信息 sFULL OUTER JOIN 成绩 cON s.学号 = c.学号GROUP BY s.姓名;
结果:
| 姓名 | 最高分数 |
| --- | --- |
| 张三 |90.00 |
| 李四 |80.00 |
| 王五 |70.00 |
### 总结连接查询是 MySQL 中一种非常重要的查询类型,它可以帮助我们从多个表中获取数据。内连接、左外连接、右外连接和全外连接都是连接查询的常用类型。通过理解这些连接查询类型,我们可以更好地处理复杂的数据库操作。
### 参考* MySQL 官方文档:[ />* W3Schools:[