资讯详情

SQL 必背知识点速查

📅 2026/11/6 6:34:00 | 华诺云谱 👁 阅读
SQL 必背知识点速查
SQL 是测试、后端、数分岗位校招面试的必考内容很多同学背了语法一到面试就容易混淆执行顺序、JOIN类型、索引和事务隔离级别这些高频考点。本文以 MySQL为主整理面试最常问到的核心知识点剔除冷门复杂内容做成速查清单。适合考前快速复盘、刷题时对照查阅帮你把高频考点牢牢掌握一、SQL 四大分类分类全称作用常见语句DDL数据定义定义表结构CREATE、ALTER、DROP、TRUNCATEDML数据操作增删改数据INSERT、UPDATE、DELETEDQL数据查询查数据SELECTDCL数据控制权限控制GRANT、REVOKE▎ 易混DELETE 是 DML可回滚TRUNCATE 是 DDL清空表且不能回滚。二、SQL 语句执行顺序高频考点书写顺序SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY → LIMIT实际执行顺序FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT这解释了两个常见现象WHERE 里不能用 SELECT 起的别名因为 WHERE 先执行ORDER BY 可以用别名因为 SELECT 在它之前执行三、常用查询语法SELECT列1,列2FROM表WHERE条件GROUPBY列HAVING组条件ORDERBY列[ASC|DESC]LIMIT偏移量,条数;四、JOIN 全解析类型结果记忆方式INNER JOIN两表都匹配上的行交集LEFT JOIN左表全部 右表匹配无匹配为 NULL左表保底RIGHT JOIN右表全部 左表匹配右表保底FULL JOIN两表全部MySQL 不直接支持用 UNION 模拟并集CROSS JOIN笛卡尔积全组合口诀INNER 取交集LEFT 左表全RIGHT 右表全。五、聚合函数与 GROUP BY常用聚合COUNT()、SUM()、AVG()、MAX()、MIN()GROUP BY按某列分组统计WHERE 与 HAVING 的区别对比WHEREHAVING过滤对象行分组后的组能否用聚合函数不能能执行时机分组前分组后SELECTdept,COUNT(*)AScntFROMemployeeWHEREsalary5000GROUPBYdeptHAVINGCOUNT(*)3;六、NULL 的坑面试爱考判断 NULL 必须用 IS NULL / IS NOT NULL NULL 永远不成立COUNT(*) 统计所有行COUNT(列) 不统计该列为 NULL 的行NULL 参与算术运算结果是 NULLNULL 与任何值比较结果为 UNKNOWN不会走索引七、子查询类型返回示例场景标量子查询单个值WHERE salary (SELECT AVG(salary) FROM emp)列子查询一列多行WHERE id IN (SELECT id FROM …)表子查询多行多列FROM (SELECT …) AS tIN vs EXISTS一般子查询结果集大用 EXISTS小用 INNOT IN 遇到 NULL 会返回空结果这是经典坑。八、索引知识点主流 MySQL 索引结构是 B 树叶子节点存数据/主键范围查询快聚簇索引叶子节点直接存整行数据一般主键索引非聚簇索引二级索引叶子存主键值需回表再查最左前缀原则联合索引 (a, b, c) 能命中 a、a,b、a,b,c不能单独命中 b 或 c索引失效常见情况WHERE 中对列做函数运算、隐式类型转换、LIKE ‘%xx’ 前置模糊、OR 连接非索引列九、事务与隔离级别ACID原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability。隔离级别脏读不可重复读幻读读未提交 Read Uncommitted可能可能可能读已提交 Read Committed否可能可能可重复读 Repeatable ReadMySQL 默认否否可能InnoDB 靠间隙锁基本解决串行化 Serializable否否否十、高频手写题查询第二高的薪水SELECTMAX(salary)FROMemployeeWHEREsalary(SELECTMAX(salary)FROMemployee);每个部门工资最高的员工分组取 Top N 的简化版SELECTe.*FROMemployee eJOIN(SELECTdept,MAX(salary)ASmax_salFROMemployeeGROUPBYdept)tONe.deptt.deptANDe.salaryt.max_sal;分组计数并过滤SELECTdept,COUNT(*)FROMemployeeGROUPBYdeptHAVINGCOUNT(*)5;十一、口诀速记执行顺序FROM WHERE 分组 HAVING 选 ORDER LIMITJOININNER 交集LEFT 左全RIGHT 右全WHERE 与 HAVINGWHERE 过滤行HAVING 过滤组索引最左前缀、函数失活、模糊前置失效
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑