news 2026/4/28 6:18:29

MySQL表的查询(二)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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:基于原值更新(🔥常考)

👉 总分倒数前三名,数学 +30

UPDATE 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 插入查询结果(去重经典写法🔥)


🎯 场景:去重数据

原表(有重复)

idname
100aaa
100aaa
200bbb

解决方案

① 创建新表

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 HAVING

  • GROUP BY 必须配合聚合函数

虽然文章没了,但是我文章里面用的截图还在,下面是对应操作的所有截图

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 6:18:23

C++函数指针详解

1. 获取函数的地址 2. 声明一个函数指针 3.使用函数指针来调用函数 获取函数指针&#xff1a; 函数的地址就是函数名&#xff0c;要将函数作为参数进行传递&#xff0c;必须传递函数名。 声明函数指针 声明指针时&#xff0c;必须指定指针指向的数据类型&#xff0c;同样…

作者头像 李华
网站建设 2026/4/28 6:16:29

基于Continue的AI代码审查自动化:从原理到CI/CD集成实践

1. 项目概述与核心价值最近在琢磨怎么把AI代码审查这事儿给整得更自动化、更靠谱一点&#xff0c;正好深度体验了一把Continue这个开源项目。简单来说&#xff0c;Continue是一个能让你把AI智能体&#xff08;Agent&#xff09;直接集成到代码仓库和CI/CD流程里的工具。它的核心…

作者头像 李华
网站建设 2026/4/28 6:07:20

Tkinter多标签页鼠标滚轮的完美解决方案

在使用Tkinter编写桌面应用程序时,常常会遇到一些看似简单的问题,比如让多标签页窗口支持鼠标滚轮滚动。今天我们来探讨一个常见的问题:如何使Tkinter的多标签页中的每个标签都能独立响应鼠标滚轮事件。 问题描述 用户报告的问题是,创建了一个多标签页的Tkinter窗口,其中…

作者头像 李华
网站建设 2026/4/28 6:03:08

比迪丽LoRA模型数据库集成案例:构建用户绘画历史与风格偏好系统

比迪丽LoRA模型数据库集成案例&#xff1a;构建用户绘画历史与风格偏好系统 你有没有想过&#xff0c;为什么那些顶级的绘画App总能猜到你喜欢的风格&#xff1f;你刚画了几张风景&#xff0c;它就给你推荐类似的笔刷和色彩&#xff1b;你偏爱赛博朋克&#xff0c;下次打开时&…

作者头像 李华
网站建设 2026/4/28 6:00:24

内容审核中的相似度比对实践:从接口调用到工程化落地

在做内容聚合/审核类项目时&#xff0c;经常遇到“文本是否重复/相似”的判断需求。自己实现一套相似度算法&#xff08;分词、向量化、编辑距离等&#xff09;成本不低&#xff0c;维护也麻烦。最近接入了一个现成接口&#xff0c;整体响应快、数据维度也够用&#xff0c;这里…

作者头像 李华