MySQL SQL基础练习:从入门到实战100题
1. MySQL SQL基础练习的价值与适用场景对于任何需要与数据库打交道的开发者来说SQL都是必须掌握的看家本领。我见过太多简历上写着精通MySQL的候选人面对简单的多表联查时却手足无措。这100道基础练习题就像武术中的马步训练看似枯燥却能夯实你的底层能力。这套练习特别适合三类人群刚学完SQL语法但缺乏实战的新手建议先掌握SELECT/INSERT/UPDATE/DELETE等基础语法准备数据库相关面试的求职者覆盖80%的初级SQL面试题工作中需要偶尔写SQL但总记不住语法的非专职DBA我在带团队时有个习惯让所有新人在入职第一周完成这100题并讲解思路。这个简单的测试能快速暴露SQL思维的薄弱环节比如有人对JOIN的理解停留在理论层面有人面对复杂条件查询就本能地想写多个简单查询。2. 练习环境快速搭建指南2.1 MySQL安装方案选型虽然练习题可以在任何MySQL环境完成但我推荐使用Docker快速搭建隔离的练习环境docker run --name mysql-practice -e MYSQL_ROOT_PASSWORD123456 -p 3306:3306 -d mysql:8.0为什么选择这个方案版本统一避免我本地是5.7但生产用8.0的兼容性问题隔离性不会污染本地已有的MySQL实例可销毁练习完直接docker rm -f mysql-practice不留痕迹注意生产环境务必使用更复杂的密码这里仅为练习方便2.2 初始化练习数据库我准备了一个经典的员工管理数据库模型包含以下表employees员工基本信息departments部门信息salaries薪资记录dept_emp部门-员工关系titles职称记录执行以下命令获取并初始化数据wget https://example.com/employee_db.sql # 示例URL实际需替换 mysql -h 127.0.0.1 -P 3306 -u root -p123456 employee_db.sql3. 核心练习题分类解析3.1 单表查询基础20题这部分看似简单却暗藏玄机重点训练SELECT字段选择与别名使用WHERE条件组合特别是BETWEEN、IN、LIKE等易错操作符DISTINCT去重的实际应用场景ORDER BY多字段排序策略典型题目示例-- 找出1990年后入职的女性员工按部门分组统计人数 SELECT d.dept_name, COUNT(*) AS female_count FROM employees e JOIN dept_emp de ON e.emp_no de.emp_no JOIN departments d ON de.dept_no d.dept_no WHERE e.gender F AND e.hire_date 1990-01-01 GROUP BY d.dept_name HAVING COUNT(*) 5;3.2 多表连接实战30题JOIN是SQL的核心难点这部分重点训练INNER JOIN与LEFT JOIN的本质区别建议用Venn图辅助理解多表连接的执行顺序与性能影响自连接的特殊应用场景如查找同一部门的员工对避坑指南永远明确指定JOIN条件避免笛卡尔积多表连接时使用表别名提高可读性超过3个表连接时考虑使用WITH子句拆分逻辑3.3 聚合函数与分组统计20题从简单计数到复杂分析GROUP BY与HAVING的配合使用窗口函数初探RANK、DENSE_RANK等ROLLUP实现多级分组统计典型错误案例-- 错误SELECT列表包含非聚合字段 SELECT dept_no, emp_no, -- 这里会报错 AVG(salary) FROM salaries GROUP BY dept_no;3.4 子查询与复杂逻辑20题包括EXISTS与IN的性能对比相关子查询执行机制使用派生表简化复杂查询优化技巧将深度嵌套的子查询重构为JOIN使用CTEWITH子句提高可读性避免在WHERE子句中对字段使用函数3.5 数据修改与事务控制10题实战重点UPDATE使用JOIN实现跨表更新事务的ACID特性验证实验悲观锁与乐观锁模拟重要提醒-- 永远先写SELECT确认再转为UPDATE -- 错误示范缺少WHERE条件 UPDATE employees SET salary salary * 1.1; -- 全表更新4. 高效练习方法论4.1 分阶段练习计划建议的练习节奏基础阶段1-50题每天10题重点理解语法强化阶段51-80题每天5题注重性能分析实战阶段81-100题每题研究多种解法4.2 使用EXPLAIN分析执行计划对每道复杂题目都应查看执行计划EXPLAIN FORMATJSON SELECT ... [你的查询语句];重点关注type列最好达到ref或rangepossible_keys与实际使用的keyExtra列中的Using filesort等警告4.3 建立个人SQL代码库建议用Git管理所有练习答案目录结构示例/sql-100/ ├── /01-basic/ │ ├── 01-select.sql │ └── 02-where.sql ├── /02-join/ ├── /03-aggregation/ └── README.md # 记录学习心得5. 常见问题排错指南5.1 错误代码速查表错误代码典型原因解决方案1064SQL语法错误检查引号、括号是否匹配1146表不存在检查表名拼写和数据库选择1055GROUP BY错误SELECT字段必须出现在GROUP BY或聚合函数中5.2 性能优化检查清单当查询执行缓慢时是否有适当的索引SHOW INDEX FROM table是否扫描了过多行EXPLAIN中的rows列是否可以重写为JOIN替代子查询是否使用了OR条件导致索引失效5.3 数据类型陷阱常见问题VARCHAR比较时注意空格text ! text 日期范围查询包含边界date 2020-12-31是否包含当天浮点数精度问题避免直接等值比较6. 进阶学习路径完成这100题后建议学习索引原理与优化B树、覆盖索引等研究执行计划优化optimizer trace了解MySQL架构连接池、缓冲池等探索分布式数据库中间件如ShardingSphere我个人的经验是当你能把这100题中的复杂查询拆解为清晰的执行流程图时就真正掌握了SQL思维。建议每半年重做一次这些题目每次都会有新的理解。

相关新闻

Windows 11关闭最近文件记录的3种方法与隐私保护指南

Windows 11关闭最近文件记录的3种方法与隐私保护指南

1. Windows 11中取消"最近使用的文件"显示的完整指南每次打开文件资源管理器,那个"最近使用的文件"列表就像个不懂看眼色的同事——明明你想保持工作隐私,它却把你的文档记录全摊在桌面上。作为从Windows 95时代就开始折腾系统的老用…

2026/8/11 12:23:36 阅读更多 →
MySQL SQL基础练习100题:从入门到实战

MySQL SQL基础练习100题:从入门到实战

1. MySQL SQL基础练习的价值与定位 作为关系型数据库的标杆产品,MySQL在全球开发者中保持着压倒性的使用率。根据2023年Stack Overflow开发者调查报告,MySQL在专业开发者中的使用率达到45.6%,远超第二名PostgreSQL的26.5%。这种广泛的应用场景…

2026/8/11 12:23:36 阅读更多 →
5个理由告诉你为什么IBM Plex字体库是开发者的最佳选择

5个理由告诉你为什么IBM Plex字体库是开发者的最佳选择

5个理由告诉你为什么IBM Plex字体库是开发者的最佳选择 【免费下载链接】plex The package of IBM’s typeface, IBM Plex. 项目地址: https://gitcode.com/gh_mirrors/pl/plex IBM Plex字体库是IBM公司精心设计的开源字体家族,专为全球科技企业打造。这个字…

2026/8/11 12:22:36 阅读更多 →

最新新闻

MySQL关闭慢查询日志

MySQL关闭慢查询日志

一、永久性关闭 (对应是永久性方式打开) 修改my.cnf或my.ini文件。方式1、把[mysqld]下的slow_query_log的值修改为OFF,保存再重启MySQL 服务器。[mysqld] slow_query_log OFF方式2、把[mysqld]下的slow_query_log一项删除或注释掉&#xff…

2026/8/11 13:15:58 阅读更多 →
外接SSD分区指南:跨平台兼容与性能优化

外接SSD分区指南:跨平台兼容与性能优化

1. 为什么需要外接SSD分区?当我把1TB的三星T7 Shield固态硬盘第一次插上笔记本时,系统只显示为一个巨大的未分配空间。这种场景对需要多系统启动的开发者、视频剪辑师处理素材分区、或是普通用户隔离工作娱乐数据都很常见。外接SSD分区不仅能提升数据管理…

2026/8/11 13:15:58 阅读更多 →
手写AI Agent工具调用循环:从状态机设计到工程实践

手写AI Agent工具调用循环:从状态机设计到工程实践

1. 项目概述:从“调用”到“循环”的认知跃迁 最近和几个做AI应用的朋友聊天,发现一个挺有意思的现象:大家一提到“AI Agent”,脑子里蹦出来的第一个画面,往往是LangChain、AutoGPT这类框架,或者是一个能自…

2026/8/11 13:15:58 阅读更多 →
Topit:Mac窗口置顶的终极解决方案,提升工作效率300%

Topit:Mac窗口置顶的终极解决方案,提升工作效率300%

Topit:Mac窗口置顶的终极解决方案,提升工作效率300% 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit Topit是一款专为macOS设计的开源窗口…

2026/8/11 13:15:58 阅读更多 →
ElasticSearch 笔记

ElasticSearch 笔记

一、搜索引擎 1 概念 所谓搜索引擎,就是根据用户需求与一定算法,运用特定策略从互联网检索出指定信息反馈给用户的一门检索技术。搜索引擎依托于多种技术,如网络爬虫技术、检索排序技术、网页处理技术、大数据处理技术、自然语言处理技术等&a…

2026/8/11 13:15:58 阅读更多 →
让AI创作触手可及:ComfyUI工作流中文版完全指南

让AI创作触手可及:ComfyUI工作流中文版完全指南

让AI创作触手可及:ComfyUI工作流中文版完全指南 【免费下载链接】ComfyUI-Workflows-ZHO 我的 ComfyUI 工作流合集 | My ComfyUI workflows collection 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-Workflows-ZHO 你是否曾被复杂的AI绘画工具…

2026/8/11 13:14:57 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →