SELECT用于查询数据,基本语法为SELECT列名FROM表名WHERE条件ORDER BY排序LIMIT数量;常用场景包括查所有数据、指定列、条件查询、模糊查询、排序、限制行数及组合使用;高级技巧含去重、聚合函数、分组、HAVING过滤、多表联查;建议避免SELECT*以提升性能。
在 MySQL 中,SELECT 语句用于从数据库表中查询数据。查询结果会返回一个结果集,可以包含零条、一条或多条记录。掌握 SELECT 的基本和进阶用法,是操作 MySQL 数据库的基础。
基本语法结构
SELECT 语句的基本语法如下:
SELECT 列名 FROM 表名 WHERE 条件 ORDER BY 排序列 LIMIT 数量;
其中:
-
SELECT:指定要查询的列,可以用 * 表示所有列
-
FROM:指定数据来源的表
-
WHERE:可选,用于过滤满足条件的行
-
ORDER BY:可选,对结果进行排序(ASC 升序,DESC 降序)
-
LIMIT:可选,限制返回的行数
常见使用方式
以下是一些常用的 SELECT 使用场景:
- 查询所有数据:
SELECT * FROM users;
- 查询指定列:
SELECT name, age FROM users;
- 带条件查询:
SELECT * FROM users WHERE age > 18;
- 模糊查询(LIKE):
SELECT * FROM users WHERE name LIKE '张%';
- 排序查询结果:
SELECT * FROM users ORDER BY age DESC;
- 限制返回数量:
SELECT * FROM users LIMIT 5;
- 组合使用多个子句:
SELECT name, age FROM users WHERE age >= 20 ORDER BY name ASC LIMIT 10;
高级查询技巧
SELECT 还支持更复杂的查询方式,适用于数据分析和多表操作:
- 去重查询(DISTINCT):
SELECT DISTINCT city FROM users;
-
聚合函数统计:
SELECT COUNT(*), AVG(age), MAX(salary) FROM users;
- 分组查询(GROUP BY):
SELECT city, COUNT(*) FROM users GROUP BY city;
- 结合 HAVING 过滤分组结果:
SELECT city, COUNT(*) AS num FROM users GROUP BY city HAVING num > 5;
- 多表联查(JOIN):
SELECT users.name, orders.amount FROM users JOIN orders ON users.id = orders.user_id;
基本上就这些。熟练使用 SELECT 能大
幅提升数据检索效率,关键是理解每个子句的作用和执行顺序。实际使用中建议避免 SELECT *,只查需要的字段,提升性能。