MySQL 基本查询实战
在数据库操作中,增删改查(CRUD)是核心能力。今天我们将深入探讨 MySQL 如何通过语句对数据进行查询和处理,重点讲解 Retrieve(读取)、Create(创建/替换)、Update(更新)和 Delete(删除)的具体用法。
一、Create 与 Replace
对于数据的创建,我们最熟悉的是 INSERT 语句。这里补充一个常用场景:REPLACE 替换。
1.1 替换操作
REPLACE 的用法与 INSERT 类似,但行为有所不同:
- 无冲突数据:直接插入,返回
1 row affected。 - 有冲突数据:先删除旧记录,再插入新记录,返回
2 rows affected。
-- 示例:如果主键或唯一索引已存在,则触发替换逻辑
REPLACE INTO table_name (col1, col2) VALUES ('val1', 'val2');
实际开发中,这常用于确保数据'只有一条最新记录',但要注意它涉及两次写操作,性能开销比 UPDATE 大。
二、Retrieve 查询详解
SELECT 是查询的核心。虽然平时用得最多的是 FROM 和 WHERE,但完整的 SELECT 语句包含更多选项。
2.1 SELECT 列
全列查询
SELECT * FROM exam_result;
虽然方便,但通常不建议在生产环境使用 *。原因有二:一是传输数据量大,二是可能影响索引优化。练习时可用,正式环境建议明确指定列名。
指定列与表达式
可以查询单列或多列,甚至支持表达式计算:
-- 多列查询
SELECT name, english FROM exam_result;
-- 表达式计算(如总分)
SELECT chinese + math + english AS total_score FROM exam_result;
注意:表达式结果默认没有别名,阅读起来不直观,建议使用 AS 指定别名。
去重
当需要统计不重复的值时,使用 DISTINCT:
SELECT DISTINCT math FROM exam_result;


