SQLite AND/OR 运算符
在 SQLite 中,
AND和OR运算符用于组合多个条件表达式,帮助构建更复杂的查询。它们用于在WHERE子句中连接多个条件。
1. AND 运算符
AND 运算符用于连接多个条件,只有在所有条件都满足时,整个表达式才为 TRUE。换句话说,AND 运算符会要求所有的条件同时为 TRUE。
语法:
SELECT column1, column2
FROM table_name
WHERE condition1 AND condition2;
示例:
SELECT * FROM employees
WHERE age > 30 AND department = 'HR';
- 该查询选出所有年龄大于 30 且属于
HR部门的员工。只有同时满足两个条件的记录才会被选中。
2. OR 运算符
OR 运算符用于连接多个条件,只要有一个条件为 TRUE,整个表达式就为 TRUE。换句话说,OR 运算符要求至少有一个条件满足。
语法:
SELECT column1, column2
FROM table_name
WHERE condition1 OR condition2;
示例:
SELECT * FROM employees
WHERE department = 'HR' OR department = 'IT';
- 该查询选出所有属于
HR部门或IT部门的员工。只要其中一个条件为TRUE,该记录就会被选中。
3. AND 与 OR 组合
AND 和 OR 运算符可以一起使用来处理更复杂的条件表达式。在组合多个条件时,AND 的优先级高于 OR,即 AND 会先于 OR 被计算。如果你希望改变计算的顺序,可以使用括号来明确优先级。
语法:
SELECT column1, column2
FROM table_name
WHERE (condition1 AND condition2) OR condition3;
示例:
SELECT * FROM employees
WHERE (age > 30 AND department = 'HR') OR salary > 5000;
- 该查询选出符合以下条件之一的员工:
- 年龄大于 30 且属于
HR部门。 - 工资大于 5000。
4. 使用 AND/OR 与 NOT 组合
NOT 运算符可以与 AND 和 OR 结合使用,用来对条件取反。
示例:
SELECT * FROM employees
WHERE NOT (age < 30 OR department = 'IT');
- 该查询选出所有 不是 年龄小于 30 且不属于
IT部门的员工,即年龄大于等于 30 或者属于IT部门的员工。
5. AND/OR 运算符的优先级
AND运算符的优先级高于OR运算符。如果你在没有括号的情况下同时使用AND和OR,AND会先计算。- 为了确保查询的逻辑符合预期,推荐在复杂查询中使用括号来明确运算顺序。
示例:
SELECT * FROM employees
WHERE age > 30 AND department = 'HR' OR salary > 5000;
- 该查询的实际含义是:查询满足 (
age > 30且department = 'HR') 或salary > 5000的员工。因为AND优先于OR,所以首先计算age > 30 AND department = 'HR'。
6. 多条件 AND/OR 的实际示例
示例 1:查找多个条件满足的员工
SELECT * FROM employees
WHERE age > 25 AND department = 'IT' AND salary > 3000;
- 该查询选出所有年龄大于 25 且属于
IT部门,且工资大于 3000 的员工。
示例 2:查找符合其中一个条件的员工
SELECT * FROM employees
WHERE department = 'HR' OR department = 'Finance';
- 该查询选出所有属于
HR或Finance部门的员工。
示例 3:结合 AND 和 OR
SELECT * FROM employees
WHERE (age > 30 AND department = 'HR') OR (salary > 5000 AND department = 'IT');
- 该查询选出符合以下条件的员工:
- 年龄大于 30 且属于
HR部门。 - 工资大于 5000 且属于
IT部门。
总结
AND用于要求多个条件都为TRUE。OR用于要求多个条件中至少有一个为TRUE。AND和OR运算符可以结合使用,括号可用于控制运算优先级。- 在组合多个条件时,确保逻辑的正确性,必要时使用括号明确优先级。
通过灵活使用 AND 和 OR 运算符,可以帮助你构建强大且灵活的查询条件。更多详细内容请关注其他相关文章。