条件查询是数据库操作中筛选目标数据的核心手段,通过指定筛选规则从数据表中匹配出符合要求的记录,广泛应用于各类业务系统的数据检索场景。

条件查询基础语法
在SQL中,条件查询主要通过WHERE子句实现,基础语法结构如下:
-- 基础条件查询语法 SELECT 列名1, 列名2, ... FROM 表名 WHERE 筛选条件;
其中WHERE子句后面的筛选条件可以包含比较运算符、逻辑运算符、特殊查询关键字等,下面通过具体实例说明不同场景的用法。
常见条件查询实例
1. 比较运算条件查询
比较运算符包括等于=、不等于!=或<>、大于>、小于<、大于等于>=、小于等于<=,用于匹配字段值与指定值的比较结果。
假设存在用户表user,结构如下:
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | int | 用户ID |
| username | varchar | 用户名 |
| age | int | 年龄 |
| score | int | 积分 |
查询年龄大于18岁的用户:
SELECT id, username, age FROM user WHERE age > 18;
查询积分为100的用户:
SELECT * FROM user WHERE score = 100;
2. 逻辑运算条件查询
逻辑运算符包括AND(与)、OR(或)、NOT(非),用于组合多个筛选条件。
查询年龄大于18岁且积分大于80的用户:
SELECT id, username, age, score FROM user WHERE age > 18 AND score > 80;
查询年龄小于18岁或者积分大于90的用户:
SELECT * FROM user WHERE age < 18 OR score > 90;
3. 范围条件查询
范围查询可以使用BETWEEN...AND...关键字,匹配字段值在指定闭区间内的记录,也可以使用IN关键字匹配字段值在指定集合内的记录。
查询年龄在18到30岁之间的用户:
SELECT id, username, age FROM user WHERE age BETWEEN 18 AND 30;
查询积分是50、80、100的用户:
SELECT * FROM user WHERE score IN (50, 80, 100);
4. 模糊条件查询
模糊查询使用LIKE关键字配合通配符实现,%代表任意长度的任意字符,_代表单个任意字符。
查询用户名以“张”开头的用户:
SELECT id, username FROM user WHERE username LIKE '张%';
查询用户名第二个字是“三”的用户:
SELECT id, username FROM user WHERE username LIKE '_三%';
5. 空值条件查询
查询字段值为空的记录使用IS NULL,查询字段值不为空的记录使用IS NOT NULL,注意不能使用= NULL判断空值。
查询用户名为空的用户:
SELECT * FROM user WHERE username IS NULL;
查询用户名不为空的用户:
SELECT * FROM user WHERE username IS NOT NULL;
条件查询注意事项
WHERE子句不能直接使用聚合函数,如COUNT()、SUM()等,聚合函数的筛选需要使用HAVING子句。- 字符串类型的字段值比较需要加单引号,数值类型不需要。
- 多个条件组合时,注意逻辑运算符的优先级,
NOT优先级高于AND,AND优先级高于OR,不确定时可以用括号明确运算顺序。 - 模糊查询中
%通配符如果放在开头,会导致索引失效,大数据量场景下尽量避免开头使用%。
条件查询是数据库操作的基础,熟练掌握不同场景的用法可以大幅提升数据检索的效率,实际使用时需要根据业务需求选择合适的筛选方式,同时注意性能相关的使用规范。