SQLite AND/OR 运算符
SQLite AND/OR 运算符
SQLite 的 AND
和 OR
运算符用于基于一个以上的条件来过滤记录。这些运算符在 WHERE
子句中与 SELECT
、UPDATE
和 DELETE
语句一起使用。理解这些运算符的工作方式对于有效地查询数据库至关重要。
AND 运算符
AND
运算符允许我们在 WHERE
子句中指定多个条件,并且只有当所有条件都为真时,才返回记录。这意味着如果任何一个条件为假,那么相应的记录就不会被包含在结果集中。
语法
SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND ...;
示例
假设我们有一个名为 Employees
的表,包含以下数据:
ID NAME SALARY
--------------------------
1 Paul 20000
2 Allen 15000
3 Teddy 20000
4 Mark 65000
5 David 80000
6 Kim 45000
如果我们想要查询工资大于 20000 且名字为 "Paul" 的员工,可以使用以下查询:
SELECT * FROM Employees
WHERE SALARY > 20000 AND NAME = 'Paul';
这个查询将返回:
ID NAME SALARY
--------------------------
1 Paul 20000
OR 运算符
OR
运算符也用于在 WHERE
子句中指定多个条件,但与 AND
运算符不同,只要任何一个条件为真,记录就会被返回。这意味着如果至少有一个条件为真,相应的记录就会被包含在结果集中。
语法
SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR ...;
示例
使用相同的 Employees
表,如果我们想要查询工资大于 20000 或者名字为 "Paul" 的员工,可以使用以下查询:
SELECT * FROM Employees
WHERE SALARY > 20000 OR NAME = 'Paul';
这个查询将返回:
ID NAME SALARY
--------------------------
1 Paul 20000
2 Allen 15000
3 Teddy 20000
4 Mark 65000
5 David 80000
6 Kim 45000
组合使用 AND 和 OR 运算符
我们可以在一个查询中同时使用 AND
和 OR
运算符。在这种情况下,AND
运算符的优先级高于 OR
运算符。这意味着 AND
运算符会首先被评估,然后才是 OR
运算符。如果需要改变这种优先级,可以使用括号。
示例
假设我们想要查询工资大于 20000 且名字为 "Paul" 或 "Mark" 的员工,可以使用以下查询:
SELECT * FROM Employees
WHERE SALARY > 20000 AND (NAME = 'Paul' OR NAME = 'Mark');
这个查询将返回:
ID NAME SALARY
--------------------------
1 Paul 20000
4 Mark 65000
通过理解并有效利用 AND
和 OR
运算符,我们可以创建更精确、更灵活的数据库查询,以满足我们的需求。