在本章中,我们将详细介绍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查询,从而更好地管理和操作数据库中的数据。