
在上一篇文章中,我们讲解了表的约束相关知识。今天这篇文章将详细拆解 MySQL 的基本查询功能,深入探讨如何通过语句对数据进行高效检索。
表的增删查改(CRUD)是数据库操作的核心,我们可以将其分为 Create(创建)、Retrieve(读取)、Update(更新)、Delete(删除)四个方面。
一、Create
这里的 Create 主要涉及 INSERT 语句的补充用法,特别是数据替换逻辑。
1.1 替换
除了常规的插入,MySQL 还支持使用 REPLACE 关键字。其用法与 INSERT 类似,但行为有所不同:
-- 示例:无冲突时直接插入
REPLACE INTO table_name (col1, col2) VALUES ('val1', 'val2');
执行结果会显示受影响的行数:
- 1 row affected:表示表中没有冲突数据,数据被正常插入。
- 2 row affected:表示表中有冲突数据,系统会先删除旧记录,再插入新数据。
这意味着如果主键或唯一索引列已存在,REPLACE 会触发'先删后插'的逻辑,而不是报错或忽略。
二、Retrieve
Retrieve 对应常用的 SELECT 语句。虽然基础用法大家比较熟悉,但完整的 SELECT 结构包含更多选项。
2.1 SELECT 列
2.1.1 全列查询
最基础的写法是 SELECT * FROM table_name。虽然方便,但在生产环境中通常不建议这样做:
- 查询列越多,传输的数据量越大,影响性能。
- 可能绕过索引优化,导致全表扫描。
除非数据量很小或确实需要所有字段,否则建议明确指定列名。
2.1.2 指定列查询
只查询需要的列可以显著提升效率:
SELECT name, english FROM exam_result;
支持同时查询多列,用逗号分隔即可。
2.1.3 查询字段为表达式
SELECT 不仅能查列名,还能计算表达式。例如计算总分或调整成绩:
SELECT chinese + math + english AS total_score FROM exam_result;
这允许我们在查询阶段直接进行简单的数值运算,无需在应用层处理。


