SQLite WHERE 子句
WHERE子句用于指定 SQL 查询中的条件,帮助过滤返回的记录。它用于对查询结果进行筛选,只返回符合条件的行。WHERE子句可以用于SELECT、UPDATE、DELETE等 SQL 语句中。
1. 基本用法
在 SQL 查询中,WHERE 子句紧跟在 FROM 子句之后,用于指定条件。
示例:
SELECT * FROM employees WHERE age > 30;
- 该查询将从
employees表中选取所有年龄大于 30 的员工。
2. 使用比较运算符
WHERE 子句支持各种比较运算符,用于比较列的值。
| 运算符 | 描述 | 示例 |
|---|---|---|
= | 等于 | WHERE age = 30 |
!= 或 <> | 不等于 | WHERE age != 30 或 WHERE age <> 30 |
> | 大于 | WHERE age > 30 |
< | 小于 | WHERE age < 30 |
>= | 大于等于 | WHERE age >= 30 |
<= | 小于等于 | WHERE age <= 30 |
BETWEEN | 范围检查,检查一个值是否在两个值之间(包含边界) | WHERE age BETWEEN 20 AND 30 |
IN | 检查一个值是否存在于一组值中 | WHERE age IN (20, 30, 40) |
LIKE | 模糊匹配字符串 | WHERE name LIKE 'A%' |
IS NULL | 检查一个值是否为 NULL | WHERE name IS NULL |
示例:
SELECT * FROM employees WHERE name LIKE 'A%';
- 该查询将选出所有名字以
A开头的员工。
3. 逻辑运算符
WHERE 子句可以使用 AND, OR, NOT 等逻辑运算符连接多个条件。
| 运算符 | 描述 | 示例 |
|---|---|---|
AND | 两个条件都为真时返回真 | WHERE age > 20 AND name = 'John' |
OR | 任一条件为真时返回真 | WHERE age < 20 OR age > 60 |
NOT | 对条件取反 | WHERE NOT age = 30 |
示例:
SELECT * FROM employees WHERE age > 30 AND department = 'HR';
- 该查询将选出所有年龄大于 30 且属于
HR部门的员工。
4. IS NULL 和 IS NOT NULL
IS NULL 用于检查列是否为 NULL 值,IS NOT NULL 用于检查列是否不是 NULL 值。
示例:
SELECT * FROM employees WHERE department IS NULL;
- 该查询选出所有没有指定部门的员工(即
department为NULL的员工)。
5. BETWEEN 操作符
BETWEEN 用于检查一个值是否在两个给定的范围内(包括边界值)。
示例:
SELECT * FROM employees WHERE salary BETWEEN 3000 AND 5000;
- 该查询将选出所有工资在 3000 到 5000 之间的员工。
6. IN 操作符
IN 用于检查一个值是否存在于指定的一组值中。
示例:
SELECT * FROM employees WHERE department IN ('HR', 'Finance', 'IT');
- 该查询将选出所有属于
HR、Finance或IT部门的员工。
7. LIKE 操作符
LIKE 用于进行模糊匹配。它可以使用通配符 %(匹配任意字符)和 _(匹配单个字符)。
| 通配符 | 描述 | 示例 |
|---|---|---|
% | 匹配任意数量的字符(包括零个字符) | 'A%' 匹配所有以 A 开头的字符串 |
_ | 匹配单个字符 | 'A_‘ 匹配所有以 A 开头,后面跟一个字符的字符串 |
示例:
SELECT * FROM employees WHERE name LIKE 'A%';
- 该查询将选出所有名字以
A开头的员工。
8. 使用 OR 和 AND 组合
你可以使用 OR 和 AND 来组合多个条件。
示例:
SELECT * FROM employees WHERE age > 30 AND (department = 'HR' OR department = 'Finance');
- 该查询将选出所有年龄大于 30 且属于
HR或Finance部门的员工。
9. 组合多个条件
你可以使用多个条件在 WHERE 子句中进行复杂筛选。
示例:
SELECT * FROM employees WHERE age > 30 AND department = 'IT' AND salary > 4000;
- 该查询将选出所有年龄大于 30、属于
IT部门且工资大于 4000 的员工。
总结
- 基本用法:用于在查询中筛选符合条件的记录。
- 常见比较运算符:
=,!=,>,<,BETWEEN,IN,LIKE,IS NULL等。 - 逻辑运算符:用于连接多个条件,如
AND,OR,NOT。 - 范围检查:使用
BETWEEN和IN。 - 模糊匹配:使用
LIKE进行字符串匹配。 - 空值检查:使用
IS NULL和IS NOT NULL。
WHERE 子句是 SQL 查询中非常重要的部分,可以帮助我们筛选和精确控制查询结果。更多详细内容请关注其他相关文章。