目录

  1. 什么是表连接?
  2. 三种常见连接类型及区别
  3. 简单试题与示例讲解
  4. 总结

1. 什么是表连接?

  • 表连接是SQL中用于将多个表的数据根据某些条件组合起来查询的操作。
  • 连接条件一般是两个表的某个字段(通常是外键和主键)相等。
  • 连接结果会包含满足条件的行,根据连接类型不同,结果会有所区别。

2. 三种常见连接类型及区别

连接类型作用说明结果示例
INNER JOIN只返回两个表中连接字段匹配的行两表都有匹配数据时才显示
LEFT JOIN返回左表所有行,右表匹配的行,否则NULL左表所有数据显示,右表无匹配时对应列为NULL
RIGHT JOIN返回右表所有行,左表匹配的行,否则NULL右表所有数据显示,左表无匹配时对应列为NULL

3. 简单试题与示例讲解

假设有两张表:

表1:students

idname
1Alice
2Bob
3Charlie

表2:scores

student_idscore
190
385
488

试题1:写SQL,查询有成绩的学生姓名和分数(使用INNER JOIN)

SELECT s.name, sc.score
FROM students s
INNER JOIN scores sc ON s.id = sc.student_id;

结果:

namescore
Alice90
Charlie85

试题2:写SQL,查询所有学生姓名及其成绩,没有成绩显示NULL(使用LEFT JOIN)

SELECT s.name, sc.score
FROM students s
LEFT JOIN scores sc ON s.id = sc.student_id;

结果:

namescore
Alice90
BobNULL
Charlie85

试题3:写SQL,查询所有成绩及对应的学生姓名,没有学生信息显示NULL(使用RIGHT JOIN)

SELECT s.name, sc.score
FROM students s
RIGHT JOIN scores sc ON s.id = sc.student_id;

结果:

namescore
Alice90
Charlie85
NULL88

4. 总结

连接类型重点记忆点
INNER JOIN只保留两表匹配行
LEFT JOIN保留左表所有数据,右表无匹配补NULL
RIGHT JOIN保留右表所有数据,左表无匹配补NULL