MySQL 基本查询实战
MySQL 的表操作核心围绕增删改查(CRUD)展开。Retrieve(读取)是日常开发中最频繁的部分,涉及 SELECT 语句的灵活运用。本文将深入讲解从基础列查询到复杂聚合分组的完整实践。
一、Create(创建与替换)
虽然 CREATE 通常指建表,但在数据写入层面,我们常接触 INSERT 和 REPLACE。REPLACE 关键字用于处理主键或唯一索引冲突的情况。
当插入的数据与表中现有记录的主键或唯一键冲突时,系统会先删除旧记录再插入新数据;若无冲突,则直接插入。
-- 无冲突直接插入
REPLACE INTO table_name (col1, col2) VALUES ('val1', 'val2');
-- 有冲突则覆盖
REPLACE INTO table_name (id, name) VALUES (1, 'NewName');
二、Retrieve(读取与查询)
SELECT 语句是查询的核心。完整的语法结构包含多个可选子句,理解它们的执行顺序对编写高效 SQL 至关重要。
2.1 SELECT 列
全列查询
使用 SELECT * 可以获取所有字段,但生产环境中不推荐。原因有二:一是传输数据量过大影响性能,二是可能阻碍索引优化。
SELECT * FROM exam_result;
指定列查询
明确列出需要的字段,减少网络开销。
SELECT name, english FROM exam_result;
表达式查询
SELECT 不仅能查列,还能计算表达式。例如计算总分或调整分数。
SELECT chinese + math + english AS total_score FROM exam_result;
别名指定
为计算结果或长字段名设置别名,提升可读性。AS 关键字可省略。
SELECT chinese + math + english AS total FROM exam_result;
结果去重
使用 DISTINCT 去除重复值,常用于统计独立选项。
math exam_result;


