MySQL 基本查询与增删改查实战指南
在数据库开发中,数据的增删查改(CRUD)是最基础也是最核心的操作。本文将系统讲解 MySQL 的基本查询语句,深入探讨如何通过 SQL 高效、准确地对数据进行检索和处理。
一、Create:数据插入与替换
虽然 INSERT 语句大家比较熟悉,但了解 REPLACE 的机制同样重要。REPLACE 本质上是一种带有冲突检测的插入操作。
1.1 替换逻辑
当执行 REPLACE INTO 时,如果目标表中存在主键或唯一索引冲突的数据,MySQL 会先删除旧记录,再插入新记录;如果没有冲突,则直接插入。
-- 无冲突,直接插入
REPLACE INTO table_name (col1, col2) VALUES ('val1', 'val2');
-- 有冲突,先删后插
REPLACE INTO table_name (id, name) VALUES (1, 'NewName');
注意观察返回的行数影响:
1 row affected:表示没有冲突,仅插入。2 row affected:表示有冲突,删除旧行并插入新行。
二、Retrieve:数据检索详解
SELECT 是查询的核心。除了基础的字段选择,掌握高级用法能显著提升查询效率。
2.1 SELECT 列的选择
全列查询
使用 SELECT * 可以快速获取所有列,但在生产环境中需谨慎。因为查询列越多,网络传输数据量越大,且可能阻碍索引优化。
SELECT * FROM exam_result;
指定列查询
只查询需要的字段,减少 IO 开销。
SELECT name, english FROM exam_result;
表达式计算
SELECT 子句支持数学运算和字符串处理,结果会作为临时列返回。
-- 计算总分
SELECT chinese + math + english AS total_score FROM exam_result;
别名与去重
为计算结果指定别名能让输出更清晰。若需去除重复值,可使用 DISTINCT。


