
1. 筛选分页结果
当数据库处理大量数据时,直接显示所有数据会导致负载过高。分页和条件筛选是常用手段。
SELECT * FROM student LIMIT 0, 3;
LIMIT 语法指定起始位置和行数,索引从 0 开始。结合 ORDER BY 可实现排序后的分页筛选。


2. Update
基本语法:
UPDATE table_name SET column = expr [, column = expr ...] [WHERE ...] [ORDER BY ...] [LIMIT ...]
UPDATE 用于更新表中的数据。不加 WHERE 条件会更新全表,操作时需格外谨慎。

3. Delete
基本语法:
DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
DELETE 通过 WHERE 条件删除行数据。

也可删除整个表的数据。测试发现 DELETE 删除所有数据后,自增长约束不会被重置为 0。


4. 截断表
基本语法:
TRUNCATE [TABLE] table_name
TRUNCATE 清空表数据后会重置自增长约束,这是与 DELETE 的主要区别。

5. 插入查询结果
INSERT INTO table_name [(column[,column...])] SELECT ...
将查询结果插入新表常用于物理去重。DISTINCT 仅查询去重,不改变原表;INSERT INTO SELECT 可创建新表并保留去重后的数据。
思路:创建新表 -> SELECT 筛选 -> INSERT 到新表 -> RENAME 表名。


6. 聚合函数
6.1 什么是聚合函数
聚合函数对一组数据进行计算并返回单一值,通常用于统计或数据分析,常与 GROUP BY 结合使用。
6.2 常见的聚合函数
| 函数 | 作用 | 示例 |
|---|---|---|
| COUNT() | 计算记录数 | SELECT COUNT(*) FROM users; |
| SUM() | 计算总和 | SELECT SUM(salary) FROM employees; |
| AVG() | 计算平均值 | SELECT AVG(age) FROM students; |
| MAX() | 返回最大值 | SELECT MAX(price) FROM products; |
| MIN() | 返回最小值 | SELECT MIN(price) FROM products; |
COUNT() 统计列的行数或总数。

SUM() 统计某一列或多列的总和。

AVG() 求平均值。

MAX() / MIN() 求一列中的最大值或最小值。
7. Group By
SELECT column1, column2, ... FROM table GROUP BY column;
GROUP BY 用于按指定字段分组,并对每组执行聚合计算。
以下示例基于员工表、工资等级表和部门表。
员工表:

工资等级表:

部门表:

7.1 如何显示每个部门的平均工资和最高工资
需先确定查询目标(最高工资、平均工资),再按部门分组。


7.2 显示每个部门的每种岗位的平均工资和最低工资
按部门和岗位双重分组。


7.3 显示平均工资低于 2000 的部门和它的平均工资
聚合后的过滤不能使用 WHERE,需搭配 HAVING 子句。

8. 总结
本文探讨了 MySQL 的关键操作,包括筛选分页、更新、删除、截断表、插入查询结果、聚合函数及 Group By 的使用。合理运用这些语句可提高查询效率、优化数据存储并更好地管理数据的增删改查。在实际应用中,需注意 SQL 语句优化,如索引使用和避免全表扫描,以提升性能。


