mysql-条件查询案例
目录
案例要求:
DQL - 条件查询
实现思路:
代码:
总结:
案例要求:
DQL - 条件查询
-
语法
SELECT 字段列表 FROM 表名 WHERE 条件列表 ;
-
条件
比较运算符 | 功能 |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
= | 等于 |
<> 或!= | 不等于 |
BETWEEN ... AND ... | 在某个范围之内 (含最小、最大值) |
IN(...) | 在 in 之后的列表中的值,多选一 |
LIKE 占位符 | 模糊匹配 (_匹配单个字符,% 匹配任意个字符) |
IS NULL | 是 NULL |
逻辑运算符 | 功能 |
---|---|
AND 或 && | 并且 (多个条件同时成立) |
OR 或 || | 或者 (多个条件任意一个成立) |
NOT 或! | 非,不是 |
-- 条件查询
-- 1. 查询年龄等于 88 的员工-- 2. 查询年龄小于 20 的员工信息-- 3. 查询年龄小于等于 20 的员工信息-- 4. 查询没有身份证好的员工信息-- 5. 查询有身份证号的员工信息-- 6. 查询年龄不等于 88 的员工信息-- 7. 查询年龄在15岁(包含) 到 20岁(包含)之间的员工信息-- 8. 查询性别为 女 且年龄小于 25岁的员工信息-- 9. 查询年龄等于18 或 20 或 40 的员工信息-- 10. 查询姓名为两个字的员工信息
实现思路:
《SQL条件查询语法详解与应用案例》 摘要:本文系统介绍了SQL中的DQL条件查询语法,通过10个典型案例详细解析了各种查询条件的应用场景。内容涵盖比较运算符(>、<、=等)、范围查询(BETWEEN)、空值判断(IS NULL)、逻辑运算(AND/OR)和模糊匹配(LIKE)等核心语法。每个案例均配有完整SQL语句和业务场景说明,如查询特定年龄用户、筛选实名认证用户、组合条件查询等。这些示例既展示了基础语法规则,又体现了实际业务中的查询逻辑构建方法,是掌握SQL数据筛选技能的实用指南。
代码:
-- SELECT * FROM tb_user WHERE age=88
-- SELECT * FROM tb_user WHERE age<20-- SELECT * FROM tb_user WHERE age<=20
-- SELECT * FROM tb_user WHERE id_card is null
-- SELECT * FROM tb_user WHERE id_card is not null
-- SELECT * FROM tb_user WHERE age!=88
-- SELECT * FROM tb_user WHERE age BETWEEN 18 AND 20
-- SELECT * FROM tb_user WHERE age< 25 AND sex='女'
-- SELECT * FROM tb_user WHERE age IN (18,20,40)
-- SELECT * FROM tb_user WHERE name LIKE '__'
以下是对这 10 条 SQL 查询语句的详细解释,结合 SQL 语法规则和实际业务场景说明其功能和执行逻辑:
1. SELECT * FROM tb_user WHERE age = 88
-
功能:从
tb_user
表中查询所有年龄(age
字段)等于 88 岁的用户记录。 -
细节:
SELECT *
表示查询所有字段(如 id、name、age 等);WHERE age = 88
是条件过滤,仅保留age
字段值严格等于 88 的行。若表中没有年龄为 88 的用户,查询结果将为空。适用于精准筛选特定年龄的用户,例如查找公司中年龄为 88 岁的员工(实际业务中该年龄可能为测试数据)。
2. SELECT * FROM tb_user WHERE age < 20
-
功能:查询
tb_user
表中所有年龄小于 20 岁的用户记录。 -
细节:
<
是比较运算符,用于筛选age
字段值小于 20 的行。例如,在用户表中筛选未成年人(假设 18 岁成年),或符合 “青年用户” 定义的群体。若表中所有用户年龄均≥20,结果将为空。
3. SELECT * FROM tb_user WHERE age <= 20
-
功能:查询
tb_user
表中所有年龄小于或等于 20 岁的用户记录。 -
细节:
<=
是 “小于等于” 运算符,与第 2 条相比,除了年龄 < 20 的记录,还会包含年龄刚好为 20 岁的用户。例如,筛选 “20 岁及以下” 的用户群体,适用于需要包含边界值的场景(如活动参与年龄限制为 “不超过 20 岁”)。
4. SELECT * FROM tb_user WHERE id_card IS NULL
-
功能:查询
tb_user
表中所有身份证号(id_card
字段)为空值(未填写)的用户记录。 -
细节:在 SQL 中,
NULL
表示 “字段值缺失或未知”,不能用= null
判断,必须使用IS NULL
。该语句常用于排查数据完整性问题,例如找出未完善身份证信息的用户,以便提醒其补充资料(如电商平台中未实名认证的用户)。
5. SELECT * FROM tb_user WHERE id_card IS NOT NULL
-
功能:查询
tb_user
表中所有身份证号(id_card
字段)不为空值(已填写)的用户记录。 -
细节:
IS NOT NULL
是IS NULL
的反向判断,用于筛选已填写身份证信息的用户。例如,统计平台中完成实名认证的用户数量,或仅对已认证用户开放某些功能(如金融类应用的转账功能)。
6. SELECT * FROM tb_user WHERE age != 88
-
功能:查询
tb_user
表中所有年龄不等于 88 岁的用户记录。 -
细节:
!=
是 “不等于” 运算符(等价于<>
),筛选出age
字段值不是 88 的所有行。例如,在排除特定年龄(如 88 岁的测试账号)后,统计剩余用户的信息。若表中所有用户年龄均为 88,结果将为空。
7. SELECT * FROM tb_user WHERE age BETWEEN 18 AND 20
-
功能:查询
tb_user
表中所有年龄在 18 到 20 岁之间(包含 18 和 20 岁)的用户记录。 -
细节:
BETWEEN ... AND ...
用于筛选字段值在指定范围内的行,包含左右边界值(等价于age >= 18 AND age <= 20
)。例如,筛选 “18-20 岁” 的用户群体,适用于年龄区间统计(如校园活动的目标用户)。
8. SELECT * FROM tb_user WHERE age < 25 AND sex = '女'
-
功能:查询
tb_user
表中所有年龄小于 25 岁且性别为女性的用户记录。 -
细节:
AND
是逻辑运算符,表示 “并且”,需同时满足两个条件:age < 25
(年龄小于 25)和sex = '女'
(性别为女)。例如,筛选 “25 岁以下的女性用户”,适用于针对性别和年龄的精准营销(如美妆产品的年轻女性用户)。
9. SELECT * FROM tb_user WHERE age IN (18, 20, 40)
-
功能:查询
tb_user
表中所有年龄为 18 岁、20 岁或 40 岁的用户记录。 -
细节:
IN(...)
用于筛选字段值匹配列表中任意一个值的行,等价于age = 18 OR age = 20 OR age = 40
。相比多个OR
拼接,IN
更简洁,适用于已知多个目标值的场景(如统计特定年龄用户的分布)。
10. SELECT * FROM tb_user WHERE name LIKE '__'
-
功能:查询
tb_user
表中所有姓名(name
字段)为两个字符的用户记录。 -
细节:
LIKE
是模糊匹配运算符,_
是通配符,代表单个任意字符。__
(两个下划线)表示匹配刚好包含两个字符的姓名(如 “张三”“李四”,但不匹配 “张三丰”“王”)。适用于按姓名长度筛选(如中文双字名用户),若需匹配多个字符,可使用%
通配符(如%三
匹配所有以 “三” 结尾的姓名)。
这些语句覆盖了 SQL 中常见的条件查询场景,包括精准匹配、范围筛选、空值判断、逻辑组合和模糊查询,是数据筛选和分析的基础操作。实际使用时需结合表结构和业务需求,确保字段名、运算符和条件逻辑正确。
总结:
《SQL条件查询语法详解与应用案例》 摘要:本文系统介绍了SQL中的DQL条件查询语法,通过10个典型案例详细解析了各种查询条件的应用场景。内容涵盖比较运算符(>、<、=等)、范围查询(BETWEEN)、空值判断(IS NULL)、逻辑运算(AND/OR)和模糊匹配(LIKE)等核心语法。每个案例均配有完整SQL语句和业务场景说明,如查询特定年龄用户、筛选实名认证用户、组合条件查询等。这些示例既展示了基础语法规则,又体现了实际业务中的查询逻辑构建方法,是掌握SQL数据筛选技能的实用指南。