在学习 MySQL 时,第一步需要掌握 基础 SQL 语法与高频查询操作。这些是日常开发、数据分析和后端编程中最常用的部分。
下面是一份 MySQL 入门:基础语法与高频查询指南。
一、SQL 基本结构
SQL 查询的基本结构:
SELECT 字段
FROM 表名
WHERE 条件
GROUP BY 分组字段
HAVING 分组条件
ORDER BY 排序字段
LIMIT 限制数量;
执行顺序(逻辑顺序):
FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
LIMIT
二、查询数据(SELECT)
最基本查询:
SELECT * FROM users;
查询指定字段:
SELECT id, name FROM users;
使用别名:
SELECT name AS username FROM users;
表别名:
SELECT u.name
FROM users u;
三、条件查询(WHERE)
WHERE 用于过滤数据。
示例:
SELECT * FROM users
WHERE age > 18;
常用条件运算符:
| 运算符 | 说明 |
|---|---|
| = | 等于 |
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
| != | 不等于 |
示例:
SELECT * FROM users
WHERE age >= 18;
四、逻辑运算符
多个条件组合:
| 运算符 | 说明 |
|---|---|
| AND | 并且 |
| OR | 或者 |
| NOT | 非 |
示例:
SELECT * FROM users
WHERE age > 18 AND city = 'Beijing';
五、模糊查询(LIKE)
用于字符串匹配。
| 符号 | 含义 |
|---|---|
| % | 任意字符 |
| _ | 单个字符 |
示例:
查询以 A 开头:
SELECT * FROM users
WHERE name LIKE 'A%';
包含 “Tom”:
SELECT * FROM users
WHERE name LIKE '%Tom%';
六、范围查询
BETWEEN
SELECT * FROM users
WHERE age BETWEEN 18 AND 30;
IN
SELECT * FROM users
WHERE city IN ('Beijing','Shanghai');
NULL 查询
SELECT * FROM users
WHERE email IS NULL;
注意:
不能使用 = NULL
七、排序查询(ORDER BY)
默认升序:
SELECT * FROM users
ORDER BY age;
降序:
SELECT * FROM users
ORDER BY age DESC;
多字段排序:
SELECT * FROM users
ORDER BY age DESC, salary ASC;
八、分页查询(LIMIT)
限制返回行数:
SELECT * FROM users
LIMIT 10;
分页查询:
SELECT * FROM users
LIMIT 10 OFFSET 20;
等价写法:
SELECT * FROM users
LIMIT 20,10;
含义:
跳过20条
返回10条
九、聚合函数
常用统计函数:
| 函数 | 作用 |
|---|---|
| COUNT | 统计数量 |
| SUM | 求和 |
| AVG | 平均 |
| MAX | 最大 |
| MIN | 最小 |
示例:
统计用户数:
SELECT COUNT(*) FROM users;
计算总金额:
SELECT SUM(price) FROM orders;
十、分组查询(GROUP BY)
按某字段分组统计。
示例:
SELECT city, COUNT(*)
FROM users
GROUP BY city;
结果:
| city | count |
|---|---|
| Beijing | 120 |
| Shanghai | 90 |
十一、HAVING 过滤分组
HAVING 用于 过滤分组结果。
示例:
SELECT city, COUNT(*) AS user_count
FROM users
GROUP BY city
HAVING user_count > 10;
区别:
| 关键字 | 作用 |
|---|---|
| WHERE | 过滤行 |
| HAVING | 过滤分组 |
十二、高频查询案例
查询最新10条用户
SELECT *
FROM users
ORDER BY create_time DESC
LIMIT 10;
查询年龄最大的用户
SELECT *
FROM users
ORDER BY age DESC
LIMIT 1;
查询每个城市用户数量
SELECT city, COUNT(*) AS total
FROM users
GROUP BY city;
查询工资最高的5人
SELECT name, salary
FROM employees
ORDER BY salary DESC
LIMIT 5;
十三、SQL 编写最佳实践
1️⃣ 只查询需要字段
不推荐:
SELECT *
推荐:
SELECT id, name
2️⃣ 使用索引字段查询
WHERE id = 10
3️⃣ LIMIT 防止全表扫描
LIMIT 100
4️⃣ 条件优先使用主键
WHERE id = ?
十四、入门阶段必须掌握的 SQL
开发最常用的 SQL:
SELECT
WHERE
LIKE
IN
BETWEEN
ORDER BY
GROUP BY
HAVING
LIMIT
COUNT
掌握这些基本就可以完成 80% 的查询需求。
✅ 总结
MySQL 入门查询核心:
SELECT 查询
WHERE 过滤
ORDER BY 排序
LIMIT 分页
GROUP BY 分组
HAVING 分组过滤
聚合函数统计
这些是学习 MySQL 的第一阶段基础。
如果你需要,我可以继续写下一篇:
《MySQL 入门 02:数据增删改(INSERT / UPDATE / DELETE)实战》,把 CRUD 整个体系讲完整。