在本章中,我们将详细介绍SQL中的各种运算符。这些运算符用于构建查询语句,帮助我们从数据库中检索和操作数据。了解这些运算符是掌握SQL的基础。
算术运算符
算术运算符用于执行基本的数学运算,如加、减、乘、除等。
+:加法。例如,SELECT 1 + 1;返回结果为2。-:减法。例如,SELECT 5 - 2;返回结果为3。*:乘法。例如,SELECT 4 * 3;返回结果为12。/:除法。例如,SELECT 10 / 2;返回结果为5。%或MOD:取余。例如,SELECT 10 % 3;返回结果为1。
比较运算符
比较运算符用于比较两个值或表达式,返回一个布尔值(TRUE, FALSE, 或 NULL)。
=:等于。例如,SELECT 'apple' = 'banana';返回结果为FALSE。<>或!=:不等于。例如,SELECT 1 <> 2;返回结果为TRUE。<:小于。例如,SELECT 1 < 2;返回结果为TRUE。>:大于。例如,SELECT 3 > 2;返回结果为TRUE。<=:小于或等于。例如,SELECT 1 <= 1;返回结果为TRUE。>=:大于或等于。例如,SELECT 4 >= 3;返回结果为TRUE。
逻辑运算符
逻辑运算符用于组合或否定条件,通常用于WHERE子句中创建复杂的查询条件。
AND:用于连接两个或多个条件,所有条件都为真时结果才为真。例如,SELECT * FROM products WHERE price > 10 AND quantity > 5;OR:用于连接两个或多个条件,只要有一个条件为真结果就为真。例如,SELECT * FROM products WHERE category = 'Electronics' OR category = 'Books';NOT:用于否定一个条件。例如,SELECT * FROM customers WHERE NOT (age > 18);
范围运算符
范围运算符用于检查某个值是否落在一个指定的范围内。
BETWEEN:用于选择介于两个值之间的数据范围(包括这两个值)。例如,SELECT * FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';IN:用于选择列中的指定多个可能的值。例如,SELECT * FROM employees WHERE department IN ('Sales', 'Marketing');
字符串匹配运算符
字符串匹配运算符用于在表中搜索符合特定模式的记录。
LIKE:用于搜索与指定模式相匹配的字符串。例如,SELECT * FROM users WHERE username LIKE 'A%';可以找到以字母“A”开头的所有用户名。NOT LIKE:用于搜索与指定模式不匹配的字符串。例如,SELECT * FROM users WHERE username NOT LIKE 'A%';REGEXP或RLIKE:用于搜索符合正则表达式的记录。例如,SELECT * FROM users WHERE username REGEXP '^A.*';可以找到以字母“A”开头的所有用户名。
空值运算符
空值运算符用于处理NULL值的情况。
IS NULL:用于检查列是否有NULL值。例如,SELECT * FROM users WHERE username IS NULL;IS NOT NULL:用于检查列是否没有NULL值。例如,SELECT * FROM users WHERE username IS NOT NULL;
位运算符
位运算符用于对整数进行二进制位的操作。
&:按位与。例如,SELECT 5 & 3;返回结果为1。|:按位或。例如,SELECT 5 | 3;返回结果为7。^:按位异或。例如,SELECT 5 ^ 3;返回结果为6。~:按位非。例如,SELECT ~5;返回结果为-6。
其他运算符
除了上述提到的运算符之外,还有一些其他有用的运算符。
UNION:用于合并两个或多个 SELECT 语句的结果集。例如,SELECT column_name FROM table1 UNION SELECT column_name FROM table2;EXISTS:用于测试子查询是否返回行。例如,SELECT * FROM orders WHERE EXISTS (SELECT * FROM customers WHERE orders.customer_id = customers.id);ALL和ANY:用于比较一个值与集合中的所有值或任意值。例如,SELECT * FROM products WHERE price > ALL (SELECT price FROM products WHERE category = 'Electronics');
通过理解并熟练使用这些运算符,你可以更有效地编写SQL查询,从而更好地管理和操作数据库中的数据。