MySQL 数据库基础:字段判空、逻辑查找、排序、限制、模糊搜索与聚合函数全解析

MySQL 是后端开发与数据处理最常用的数据库之一,掌握基本的查询语句,是写好程序的第一步。本篇文章带你从最基础的字段判空查找、逻辑查询,到排序、结果限制、模糊搜索,再到聚合函数,一次性掌握最常用的 SQL 语法。

文末还附带完整作业示例代码,可直接复制练习。


🧩 一、字段判空查询(IS NULL / IS NOT NULL)

当我们想知道某个字段是否有值时,可以使用:

✔ 查找字段为空的数据

sql 复制代码
select * from 表名 where 字段 is null;

示例:

sql 复制代码
select * from hk where username is null;

✔ 查找字段不为空的数据

sql 复制代码
select * from 表名 where 字段 is not null;

示例:

sql 复制代码
select * from hk where id is not null;

🧠 二、逻辑查询(AND / OR / NOT)

1) AND ------ 两个条件同时满足

sql 复制代码
select * from hk where age > 22 and age < 28;

2) OR ------ 满足其中一个即可

sql 复制代码
select * from hk where age > 22 or age < 28;

3) NOT ------ 条件取反

sql 复制代码
select * from hk where not age > 18;

🔽 三、排序(ORDER BY)

✔ 升序(默认)

sql 复制代码
select * from hk order by age;

✔ 降序(desc)

sql 复制代码
select * from hk order by age desc;

🎯 四、限制输出条数(LIMIT)

只取前 N 条:

sql 复制代码
select * from hk limit 3;

配合排序完成"取最大 / 最小":

sql 复制代码
select * from hk order by age desc limit 3;

🌀 五、去重(DISTINCT)

当你不希望某个字段重复出现时:

sql 复制代码
select distinct 字段 from 表名;

🔍 六、模糊匹配(LIKE)

使用 %关键字% 进行模糊查找:

sql 复制代码
select * from hk where username like '%wang%';

📏 七、范围查询(BETWEEN)

用于判断字段是否落在某个区间:

sql 复制代码
select * from hk where age between 20 and 25;

📊 八、聚合函数(COUNT / SUM / AVG)

这些函数常用于统计类需求:

✔ count() ------ 统计数量

sql 复制代码
select count(*) from hk;
select count(username) from hk;  -- 不统计为 null 的行

✔ sum() ------ 求和

sql 复制代码
select sum(age) from hk;

✔ avg() ------ 平均值

sql 复制代码
select avg(age) from hk;

📝 九、综合作业(完整 SQL 已给)

根据上面的知识点,下面是一个完整的练习题与参考答案:


🎯 作业要求

1️⃣ 创建库 yy

2️⃣ 创建用户表 haha,字段:id、username、age

3️⃣ 插入 10 条数据

4️⃣ 查找 username 为空的数据

5️⃣ 计算 age 字段的总和与平均值

6️⃣ 查找 age 在 16--18 岁之间的人

7️⃣ 模糊查找名字中含有 h 的用户


✅ 完整 SQL 示例代码(可直接复制运行)

sql 复制代码
-- 1. 创建库
create database yy;

-- 2. 使用数据库
use yy;

-- 3. 创建表 haha
create table haha(
    id int,
    username varchar(50),
    age int
);

-- 4. 插入 10 条数据
insert into haha values
(1, 'han', 18),
(2, 'li', 20),
(3, 'hong', 17),
(4, null, 19),
(5, 'hao', 16),
(6, 'zhang', 18),
(7, 'hua', 21),
(8, null, 22),
(9, 'he', 17),
(10, 'cheng', 23);

-- 5. 查找 username 为空的数据
select * from haha where username is null;

-- 6. 求 age 的和、平均值
select sum(age) from haha;
select avg(age) from haha;

-- 7. 查找 age 在 16 - 18 岁之间的人
select * from haha where age between 16 and 18;

-- 8. 模糊查询名字含有 h 的
select * from haha where username like '%h%';

🧩 十、总结

这篇文章系统地覆盖了 MySQL 中最常用的查询方式,包括:

  • 字段判空
  • 组合逻辑查询
  • 排序、限制
  • 去重与模糊查询
  • 范围与聚合函数

这些都是数据库初学者必须掌握的语法,也是实际开发中最常用的部分。熟练掌握这些基础,将为后续更深入的 SQL 查询和业务数据处理打下扎实基础。

相关推荐
吠品6 分钟前
PG_GBK 与 PG_UTF8 编码冲突:一次数据导入踩坑复盘
数据库
lld95102713 分钟前
我做了一个 AI Agent Skill 云:用 MCP 在 Claude Code、Codex、OpenCode 之间同步技能
数据库·人工智能
辉灰笔记1 小时前
MySQL8 意外关机/误移data目录导致服务启动失败 PID报错/权限报错 修复文档
linux·数据库·mysql·centos
麦聪聊数据2 小时前
电商大促数据库管控(下):数据需求小时级交付与全链路安全管控
数据库
喜欢的名字被抢了2 小时前
MySQL核心机制:事务、锁与存储引擎
数据库·sql·mysql·教程
JosieBook2 小时前
【数据库】时序数据库通过国测认证,TimechoAI开放体验:工业数据的“存”与“智”如何协同?
数据库·时序数据库
卓怡学长3 小时前
w263基于springboot + vue 健康饮食管理系统
java·数据库·vue.js·spring boot·spring·intellij-idea
万亿少女的梦1684 小时前
基于Spring Boot、Vue.js和MySQL的超市管理系统设计与实现
java·vue.js·spring boot·mysql·管理系统
weixin_307779134 小时前
Linux下Docker Compose里运行的MySQL数据库故障诊断Shell脚本
linux·运维·mysql·docker·自动化
阿演5 小时前
DataDjinn v0.2.11:SQL 编辑、AI 协作和表格操作继续打磨
数据库·人工智能·sql