1. 课堂引入:目录、窗口与自动门

🎤 查一本 500 页的书,没有目录得一页页翻(全表扫描);有目录一翻就到(索引)。视图像给不同人开的"专用窗口"——销售只看部分数据。触发器像"自动门"——有人进门自动开,不用你每次去推。今天这三样,让数据库又快又聪明。

📝 本节例题

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

例 1
查看 student 表上已经建立了哪些索引。
查看参考答案(可复制)
sql
SHOW INDEX FROM student;
💡 主键会自动创建名为 PRIMARY 的索引,所以主键查询天然就快。
例 2
用 EXPLAIN 分别观察“按主键查学生”和“按姓名查学生”各扫描了多少行。
查看参考答案(可复制)
sql
EXPLAIN SELECT * FROM student WHERE Sno = '001';
EXPLAIN SELECT * FROM student WHERE Sname = '赵雷';
💡 看 key 列是否用上索引、rows 列扫描行数。给 Sname 建索引后 rows 会明显下降。
例 3
查看 emp 表的索引信息,指出外键字段 dept_id 上的索引叫什么、是哪类索引。
查看参考答案(可复制)
sql
SHOW INDEX FROM emp;
-- 或
SHOW CREATE TABLE emp;
💡 给外键列建索引是 MySQL 自动做的,外键字段上的索引名为 fk_emp_dept_id。