MySQL SQL基础练习100题:从入门到实战
1. MySQL SQL基础练习的价值与定位作为关系型数据库的标杆产品MySQL在全球开发者中保持着压倒性的使用率。根据2023年Stack Overflow开发者调查报告MySQL在专业开发者中的使用率达到45.6%远超第二名PostgreSQL的26.5%。这种广泛的应用场景使得MySQL技能成为后端开发、数据分析等岗位的必备能力。我整理这100道基础练习题的初衷源于多年面试官经历中观察到的现象约70%的初级候选人在基础SQL操作上存在明显短板。常见问题包括对JOIN操作的类型和区别理解模糊聚合函数与GROUP BY的配合使用不熟练子查询和临时表的应用场景混淆事务隔离级别的实际影响认知不足这套练习题特别适合以下人群准备校招/实习的技术类专业学生计划转行数据分析的传统行业从业者需要巩固数据库基础的初级开发人员准备MySQL相关认证考试的备考者2. 练习环境搭建指南2.1 MySQL安装配置推荐使用MySQL 8.0社区版作为练习环境其安装过程在不同平台有所差异Windows平台从官网下载MySQL Installer选择Developer Default安装类型设置root密码时建议启用Strong Password Encryption配置Windows服务时勾选Start the MySQL Server at System StartupmacOS平台brew install mysql brew services start mysql mysql_secure_installationLinux(Ubuntu)平台sudo apt update sudo apt install mysql-server sudo mysql_secure_installation重要提示练习时建议创建专用测试数据库避免误操作生产数据CREATE DATABASE practice_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;2.2 图形化工具选型对于初学者推荐以下工具辅助练习工具名称适用场景特色功能MySQL Workbench综合管理可视化ER图、SQL调试DBeaver多数据库支持跨平台、数据导出TablePlus简洁界面原生体验、快速导航HeidiSQLWindows专属轻量级、查询构建器3. 基础查询专项训练3.1 SELECT语句核心要素基础语法结构SELECT [DISTINCT] 列名 FROM 表名 [WHERE 条件] [GROUP BY 分组列] [HAVING 分组条件] [ORDER BY 排序列 [ASC|DESC]] [LIMIT 行数];典型练习题示例查询员工表中薪资大于10000的员工姓名和部门IDSELECT employee_name, department_id FROM employees WHERE salary 10000;统计各部门员工数量按人数降序排列SELECT department_id, COUNT(*) as emp_count FROM employees GROUP BY department_id ORDER BY emp_count DESC;3.2 多表连接实战连接类型对比表连接类型关键字结果特征性能影响内连接INNER JOIN只返回匹配行最优左外连接LEFT JOIN左表全保留中等右外连接RIGHT JOIN右表全保留中等全外连接FULL JOIN两表全保留最差交叉连接CROSS JOIN笛卡尔积慎用连接练习案例查询每个部门的名称及其经理姓名SELECT d.department_name, e.employee_name as manager_name FROM departments d LEFT JOIN employees e ON d.manager_id e.employee_id;4. 数据操作进阶训练4.1 事务处理机制ACID特性实现START TRANSACTION; -- 操作1转账出账 UPDATE accounts SET balance balance - 1000 WHERE account_id A001; -- 操作2转账入账 UPDATE accounts SET balance balance 1000 WHERE account_id B002; -- 根据业务逻辑决定提交或回滚 COMMIT; -- 或 ROLLBACK;隔离级别对比隔离级别脏读不可重复读幻读性能READ UNCOMMITTED可能可能可能最高READ COMMITTED避免可能可能高REPEATABLE READ避免避免可能中SERIALIZABLE避免避免避免最低4.2 存储过程开发创建带参数的存储过程示例DELIMITER // CREATE PROCEDURE update_salary( IN emp_id INT, IN increase_percent DECIMAL(5,2), OUT new_salary DECIMAL(10,2) ) BEGIN DECLARE current_sal DECIMAL(10,2); SELECT salary INTO current_sal FROM employees WHERE employee_id emp_id; SET new_salary current_sal * (1 increase_percent/100); UPDATE employees SET salary new_salary WHERE employee_id emp_id; END // DELIMITER ; -- 调用示例 CALL update_salary(101, 10.5, result); SELECT result;5. 性能优化关键策略5.1 索引设计原则索引创建最佳实践-- 单列索引 CREATE INDEX idx_employee_name ON employees(employee_name); -- 复合索引注意列顺序 CREATE INDEX idx_dept_salary ON employees(department_id, salary); -- 覆盖索引优化 CREATE INDEX idx_covering ON orders(customer_id, order_date, total_amount);索引失效的常见场景使用!或操作符对索引列使用函数操作如UPPER(name)隐式类型转换如字符串列与数字比较使用OR条件连接不同索引列模糊查询以通配符开头如LIKE %abc5.2 执行计划解析EXPLAIN输出关键字段字段说明优化关注点type访问类型至少达到range级别key实际使用的索引检查是否使用预期索引rows预估扫描行数数值过大需优化Extra附加信息避免出现Using filesort优化案例-- 优化前全表扫描 EXPLAIN SELECT * FROM orders WHERE YEAR(order_date) 2023; -- 优化后索引范围扫描 EXPLAIN SELECT * FROM orders WHERE order_date BETWEEN 2023-01-01 AND 2023-12-31;6. 安全防护实践6.1 SQL注入防御不安全写法$query SELECT * FROM users WHERE username $username AND password $password;参数化查询示例PHP$stmt $conn-prepare(SELECT * FROM users WHERE username ? AND password ?); $stmt-bind_param(ss, $username, $password); $stmt-execute();MySQL防御措施使用PREPARE语句设置最小权限原则启用sql_modeSTRICT_ALL_TABLES对输入进行白名单验证6.2 数据备份策略mysqldump常用命令# 完整备份 mysqldump -u root -p --databases practice_db backup.sql # 增量备份需启用binlog mysqlbinlog /var/lib/mysql/mysql-bin.000123 incremental.sql # 恢复流程 mysql -u root -p practice_db backup.sql mysql -u root -p incremental.sql7. 全套练习题分类清单7.1 基础查询20题单表条件查询使用BETWEEN筛选范围IN操作符应用NULL值处理列别名使用7.2 聚合函数15题COUNT统计应用多列GROUP BYHAVING筛选分组聚合结果排序嵌套聚合查询7.3 多表操作25题两表内连接三表级联查询自连接场景外连接差异实践使用USING简化连接7.4 子查询20题WHERE子句子查询FROM子句派生表EXISTS/NOT EXISTS应用相关子查询优化WITH子句(CTE)使用7.5 数据修改10题批量UPDATE模式基于查询的INSERTDELETE联表操作事务回滚场景乐观锁实现7.6 高级特性10题窗口函数应用JSON数据处理全文索引搜索地理空间查询生成列使用练习建议每天完成10-15题对错题建立笔记记录重点理解执行计划分析。实际工作中约80%的日常SQL操作都涵盖在这些基础题型中。

相关新闻

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 阅读更多 →
SamtecTFM-135系列全面解析_选型_规格书PDF_国产替代

SamtecTFM-135系列全面解析_选型_规格书PDF_国产替代

WORLDPO连接器支持 Samtec全系列连接器/线束<国产替代方>案 产品全面对标国际一线品牌&#xff0c;在尺寸、电气性能、机械性能上实现1:1兼容&#xff0c;无需修改PCB设计&#xff0c;无需重新验证&#xff0c;原位替换&#xff0c;即插即用&#xff0c;提供高性价比的国…

2026/8/11 12:22:36 阅读更多 →
3步快速解锁加密音乐:Unlock-Music终极使用指南

3步快速解锁加密音乐:Unlock-Music终极使用指南

3步快速解锁加密音乐&#xff1a;Unlock-Music终极使用指南 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地址: https://git…

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

最新新闻

做了5年社区公益项目负责人|项目汇报终于不只剩“做了几场活动”

做了5年社区公益项目负责人|项目汇报终于不只剩“做了几场活动”

做社区公益项目的人&#xff0c;应该都经历过这种阶段性汇报&#xff1a;会议开始前&#xff0c;手上已经有活动场次、参与人数、志愿者工时、物资数量、照片、报名表和居民反馈&#xff0c;但真正打开PPT时&#xff0c;还是不知道先讲哪个成果。白天要和社区确认场地&#xff…

2026/8/11 13:16:59 阅读更多 →
JMeter文件上传接口测试实战:从原理到复杂场景全解析

JMeter文件上传接口测试实战:从原理到复杂场景全解析

1. 项目概述&#xff1a;为什么JMeter文件上传测试是面试“送命题”&#xff1f; 最近在带团队新人&#xff0c;也和一些测试圈的朋友交流&#xff0c;发现一个挺有意思的现象&#xff1a;很多有几年经验的测试工程师&#xff0c;简历上写着“精通JMeter接口测试”&#xff0c;…

2026/8/11 13:16:59 阅读更多 →
苏州爱采购运营哪家好?本土优质服务商盘点,首选江苏一网推对接赵小园--企优托

苏州爱采购运营哪家好?本土优质服务商盘点,首选江苏一网推对接赵小园--企优托

当下B2B线上采购市场竞争日趋激烈,沈阳众多工业品、建材、机械设备供应商,常会布局百度爱采购拓宽全国客源;不少扎根沈阳的工厂商家,会优先找寻苏州专业的爱采购运营服务商,依靠成熟代运营团队打理线上店铺,拿下多地工程集采、批量采购订单。很多企业对比多家机构之后,都会疑惑…

2026/8/11 13:16:58 阅读更多 →
园区数字孪生怎么做?开发的关键步骤有哪些?

园区数字孪生怎么做?开发的关键步骤有哪些?

园区数字孪生怎么做&#xff1f;开发的关键步骤有哪些&#xff1f;近年来&#xff0c;园区管理走向数据驱动管理型。园区数字孪生的需求日益旺盛&#xff0c;但很多企业仍面临一个实际问题&#xff1a;数字孪生到底怎么做&#xff1f;是不是成本很高、技术门槛很大&#xff1f;…

2026/8/11 13:16:58 阅读更多 →
Unity热更新安全实战:基于xLua的签名校验完整方案

Unity热更新安全实战:基于xLua的签名校验完整方案

1. 项目概述&#xff1a;为什么热更新安全是Unity项目的生命线在Unity游戏开发圈子里&#xff0c;热更新技术&#xff0c;尤其是基于xLua的方案&#xff0c;几乎是中大型项目的标配。它能让我们绕过漫长的应用商店审核&#xff0c;快速修复线上Bug、发布新活动&#xff0c;甚至…

2026/8/11 13:16:58 阅读更多 →
MySQL关闭慢查询日志

MySQL关闭慢查询日志

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

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

日新闻

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

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

如何用Video2X实现专业级视频画质提升&#xff1a;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. 问题现象解析&#xff1a;控制台与Apifox的数据差异 最近在调试一个前后端分离项目时&#xff0c;遇到了一个典型问题&#xff1a;后端服务在本地开发环境控制台能正常输出查询数据&#xff0c;但通过Apifox测试时却返回空结果。这种"控制台有数据&#xff0c;接口工具…

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

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

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

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

周新闻

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

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

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

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

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

如何快速生成中国车牌图片&#xff1a;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工程开始实践

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

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

月新闻

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

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

免费解锁百度网盘SVIP加速&#xff1a;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指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

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

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

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

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