MySQL表的查询(二)
呜呜呜其实我已经写好了这个博客附有每个功能的截图和详细介绍但是我一不小心给删了找不回来了太伤心了写了蛮久的蚌埠住了我只能让ai帮我写一篇了因为我真的累了这太伤我心了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(不过我会过目一遍ai写的博客确保全部都谈论到才会发布)本文基于实际案例讲解 MySQL 中最核心的操作更新、删除、统计、分组建议搭配实际数据库操作练习 6.3 Update更新数据✨ 基本语法UPDATE table_name SET column value [, column value ...] [WHERE ...] [ORDER BY ...] [LIMIT ...]; 本质对查询结果进行修改 示例1修改单个字段 将“孙悟空”的数学成绩改为 80 分UPDATE exam_result SET math 80 WHERE name 孙悟空; 更新前namemath孙悟空78 更新后namemath孙悟空80 示例2同时修改多个字段UPDATE exam_result SET math 60, chinese 70 WHERE name 曹孟德; 一条 SQL 更新多个列 示例3基于原值更新常考 总分倒数前三名数学 30UPDATE exam_result SET math math 30 ORDER BY chinese math english LIMIT 3; 核心点❗ MySQL 不支持math 30✅ 必须写成math math 30⚠️ 示例4全表更新危险操作UPDATE exam_result SET chinese chinese * 2; 没有 WHERE → 所有数据都会被修改⚠️ 实际开发中必须谨慎❌ 6.4 Delete删除数据 基本语法DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]; 示例1删除一条数据DELETE FROM exam_result WHERE name 孙悟空; 示例2删除整张表DELETE FROM table_name; 特点数据被删除自增 id 不会重置⚡ TRUNCATE更狠TRUNCATE table_name; DELETE vs TRUNCATE对比项DELETETRUNCATE删除方式一行一行删直接清空是否可回滚✅ 可以❌ 不可以是否重置自增❌ 不重置✅ 重置速度慢非常快 一句话总结TRUNCATE “直接把表砍了重建” 6.5 插入查询结果去重经典写法 场景去重数据原表有重复idname100aaa100aaa200bbb解决方案① 创建新表CREATE TABLE new_table LIKE old_table;② 去重插入INSERT INTO new_table SELECT DISTINCT * FROM old_table;③ 原子替换高阶技巧RENAME TABLE old_table TO backup_table, new_table TO old_table; 完成“无感知去重” 6.6 聚合函数统计分析核心 常用函数函数作用COUNT数量SUM求和AVG平均值MAX最大值MIN最小值 示例1统计人数SELECT COUNT(*) FROM students; NULL 不影响结果 示例2统计有 qq 的人数SELECT COUNT(qq) FROM students; NULL 会被忽略 示例3去重统计SELECT COUNT(DISTINCT math) FROM exam_result; 示例4总分SELECT SUM(math) FROM exam_result; 示例5平均总分SELECT AVG(chinese math english) FROM exam_result; 示例6最大/最小SELECT MAX(english) FROM exam_result; SELECT MIN(math) FROM exam_result WHERE math 70; 6.7 GROUP BY分组查询重点✨ 基本语法SELECT column, aggregate_function FROM table GROUP BY column; 示例1按部门统计平均工资SELECT deptno, AVG(sal), MAX(sal) FROM EMP GROUP BY deptno; 示例2多字段分组SELECT deptno, job, AVG(sal) FROM EMP GROUP BY deptno, job; 示例3分组后筛选重点SELECT deptno, AVG(sal) AS avg_sal FROM EMP GROUP BY deptno HAVING avg_sal 2000;❗ WHERE vs HAVING条件作用阶段WHERE分组前HAVING分组后 面试常问SQL执行顺序面试必考FROM → ON → JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT 总结建议背下来 一张图理解 CRUD操作SQL增INSERT查SELECT改UPDATE删DELETE 高频面试点UPDATE 是否可以不加 WHERE可以但危险DELETE 和 TRUNCATE 区别COUNT(*) 和 COUNT(列) 区别WHERE vs HAVINGGROUP BY 必须配合聚合函数虽然文章没了但是我文章里面用的截图还在下面是对应操作的所有截图
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2561863.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!