目录
- 什么是表连接?
- 三种常见连接类型及区别
- 简单试题与示例讲解
- 总结
1. 什么是表连接?
- 表连接是SQL中用于将多个表的数据根据某些条件组合起来查询的操作。
- 连接条件一般是两个表的某个字段(通常是外键和主键)相等。
- 连接结果会包含满足条件的行,根据连接类型不同,结果会有所区别。
2. 三种常见连接类型及区别
连接类型 | 作用说明 | 结果示例 |
---|
INNER JOIN | 只返回两个表中连接字段匹配的行 | 两表都有匹配数据时才显示 |
LEFT JOIN | 返回左表所有行,右表匹配的行,否则NULL | 左表所有数据显示,右表无匹配时对应列为NULL |
RIGHT JOIN | 返回右表所有行,左表匹配的行,否则NULL | 右表所有数据显示,左表无匹配时对应列为NULL |
3. 简单试题与示例讲解
假设有两张表:
表1:students
表2:scores
试题1:写SQL,查询有成绩的学生姓名和分数(使用INNER JOIN)
SELECT s.name, sc.score
FROM students s
INNER JOIN scores sc ON s.id = sc.student_id;
结果:
name | score |
---|
Alice | 90 |
Charlie | 85 |
试题2:写SQL,查询所有学生姓名及其成绩,没有成绩显示NULL(使用LEFT JOIN)
SELECT s.name, sc.score
FROM students s
LEFT JOIN scores sc ON s.id = sc.student_id;
结果:
name | score |
---|
Alice | 90 |
Bob | NULL |
Charlie | 85 |
试题3:写SQL,查询所有成绩及对应的学生姓名,没有学生信息显示NULL(使用RIGHT JOIN)
SELECT s.name, sc.score
FROM students s
RIGHT JOIN scores sc ON s.id = sc.student_id;
结果:
name | score |
---|
Alice | 90 |
Charlie | 85 |
NULL | 88 |
4. 总结
连接类型 | 重点记忆点 |
---|
INNER JOIN | 只保留两表匹配行 |
LEFT JOIN | 保留左表所有数据,右表无匹配补NULL |
RIGHT JOIN | 保留右表所有数据,左表无匹配补NULL |
发表回复