1. 课堂引入:从"仓库"里找东西

🎤 前面我们学会了往仓库里放货(INSERT)、改标签(UPDATE)、下架(DELETE)。但数据库存在的终极目的,是"随时能查"——查某个学生、查某门课的平均分、查谁不及格。今天起,SELECT 将成为你用得最频繁的命令。

完整查询的"骨架"记住它,后面全是往里填零件:

sql
SELECT 字段列表
FROM 表名
WHERE 条件
GROUP BY 分组字段
HAVING 分组后条件
ORDER BY 排序字段
LIMIT 分页参数;

📝 本节例题

以下例题均基于 教学实例 库(student / course / sc / teacher / grades / dept / emp),开始前先执行 USE 教学实例;。建议先自己写一遍,再展开答案对照。

例 1
查看 student 表的前 5 名学生。
查看参考答案(可复制)
sql
SELECT * FROM student LIMIT 5;
💡 LIMIT 5 只取前 5 行,先看样本再决定怎么查,比 SELECT * 全表扫稳妥。
例 2
查看 course 表中开设的全部课程。
查看参考答案(可复制)
sql
SELECT * FROM course;
💡 课程表只有 4 行,是理解表关系最好的入口。
例 3
统计学生总人数,以及这些学生分布在多少个不同的班级。
查看参考答案(可复制)
sql
SELECT COUNT(*) AS 总人数, COUNT(DISTINCT class) AS 班级数
FROM student;
💡 COUNT(DISTINCT 列名) 先去重再计数,用来统计'有多少种'。