
在计算机类技术面试中数据库尤其是 MySQL是考察的重点之一。无论是后端开发、数据分析还是全栈工程师岗位掌握 MySQL 的核心语法和常见问题至关重要。本文将系统梳理 MySQL 面试中常考的关键字辅以简洁示例并附上几个经典面试问答助你高效备战一、MySQL 高频关键字速查表关键字类别常见关键字功能说明数据查询SELECT,FROM,WHERE,GROUP BY,HAVING,ORDER BY,LIMIT查询数据支持条件筛选、分组、排序、限制结果数量连接操作JOIN,INNER JOIN,LEFT JOIN,RIGHT JOIN,FULL OUTER JOINMySQL 不支持多表关联查询聚合函数COUNT(),SUM(),AVG(),MAX(),MIN()对一组值进行统计计算子查询IN,EXISTS,ANY,ALL,(SELECT ...)在查询中嵌套另一个查询数据操作INSERT,UPDATE,DELETE插入、更新、删除数据数据定义CREATE,ALTER,DROP,TRUNCATE创建/修改/删除表或数据库结构约束与索引PRIMARY KEY,FOREIGN KEY,UNIQUE,NOT NULL,INDEX定义表结构约束和优化查询性能事务控制BEGIN,COMMIT,ROLLBACK,SAVEPOINT管理事务的原子性和一致性窗口函数较新ROW_NUMBER(),RANK(),DENSE_RANK(),OVER()实现行号、排名等高级分析功能MySQL 8.0其他常用DISTINCT,AS,LIKE,BETWEEN,IS NULL,CASE WHEN去重、别名、模糊匹配、区间判断、空值处理、条件表达式二、关键关键字示例1. 基础查询与过滤-- 查询所有用户按年龄降序取前5条SELECTname,ageFROMusersWHEREage18ORDERBYageDESCLIMIT5;2. 分组与聚合-- 统计每个部门的员工人数和平均工资SELECTdept_id,COUNT(*)ASemp_count,AVG(salary)ASavg_salaryFROMemployeesGROUPBYdept_idHAVINGAVG(salary)5000;3. 多表连接LEFT JOIN-- 查询所有用户及其订单即使没有订单也显示SELECTu.name,o.order_dateFROMusers uLEFTJOINorders oONu.ido.user_id;4. 子查询-- 查询工资高于平均工资的员工SELECTname,salaryFROMemployeesWHEREsalary(SELECTAVG(salary)FROMemployees);5. 条件表达式CASE WHEN-- 根据分数划分等级SELECTname,CASEWHENscore90THENAWHENscore80THENBELSECENDASgradeFROMstudents;6. 事务操作BEGIN;UPDATEaccountsSETbalancebalance-100WHEREuser_id1;UPDATEaccountsSETbalancebalance100WHEREuser_id2;COMMIT;-- 或 ROLLBACK;三、MySQL 经典面试问题与参考回答Q1WHERE和HAVING有什么区别答WHERE用于在分组前过滤行不能使用聚合函数HAVING用于在分组后过滤分组结果可以使用聚合函数。例如WHERE age 20是先筛选年龄再分组而HAVING COUNT(*) 5是分组后再筛选组内记录数大于5的组。Q2LEFT JOIN和INNER JOIN的区别是什么答INNER JOIN只返回两个表中匹配的记录LEFT JOIN返回左表所有记录右表无匹配时用NULL填充。实际场景中若要“列出所有用户及其订单包括未下单用户”必须用LEFT JOIN。Q3什么是索引什么时候该建索引答索引是数据库中用于加速查询的数据结构如 B 树。适合建索引的情况经常用于WHERE、JOIN、ORDER BY的字段值具有高区分度如用户ID、邮箱不适合的情况频繁更新的字段索引维护开销大数据量很小的表低区分度字段如性别只有男/女。Q4DELETE、TRUNCATE和DROP的区别答操作作用是否可回滚是否释放空间速度DELETE删除表中部分或全部数据是事务内否高水位不变慢TRUNCATE清空整张表否DDL 操作是快DROP删除整张表结构数据否是最快注意TRUNCATE在 MySQL 中属于 DDL会隐式提交事务无法回滚。Q5如何优化慢 SQL答使用EXPLAIN分析执行计划查看是否走索引避免SELECT *只查必要字段为WHERE/JOIN字段添加合适索引避免在索引列上使用函数或表达式如WHERE YEAR(create_time) 2025分页查询用LIMIT offset, size时大偏移量可改用游标基于 ID合理设计表结构避免大宽表。结语掌握这些 MySQL 关键字和经典问题不仅能应对笔试和白板编程还能在实际开发中写出更高效、更安全的 SQL。建议结合 LeetCode 或牛客网的 SQL 题库多加练习理解背后的执行原理如索引结构、查询优化器才能真正融会贯通。