当前位置:  首页>> 技术小册>> MySQL从入门到精通(二)

7.1 运算符

在MySQL中,运算符是执行数学计算、比较数据、逻辑判断等操作的基本符号。它们对于数据查询、更新、删除等操作至关重要,是实现复杂数据操作与逻辑处理的关键。本章将详细介绍MySQL中的各类运算符,包括算术运算符、比较运算符、逻辑运算符、位运算符、字符串运算符以及特殊运算符,帮助读者从基础到精通,全面掌握MySQL中的运算符使用。

7.1.1 算术运算符

算术运算符用于执行基本的数学运算,如加、减、乘、除等。在MySQL中,常见的算术运算符包括:

  • +:加法运算符,用于两个数值相加。
  • -:减法运算符,用于第一个数值减去第二个数值。
  • *:乘法运算符,用于两个数值相乘。
  • /:除法运算符,用于第一个数值除以第二个数值。注意,当除数为0时,结果会是一个错误或特殊值(如Infinity在支持的环境中)。
  • %(MOD):模运算符,返回两个数相除后的余数。

示例

  1. SELECT 5 + 3 AS Addition, 10 - 2 AS Subtraction, 4 * 5 AS Multiplication, 10 / 2 AS Division, 10 % 3 AS Modulo;

7.1.2 比较运算符

比较运算符用于比较两个表达式的结果,并根据比较结果返回TRUE、FALSE或NULL。这些运算符在条件语句(如WHERE子句)中非常有用。

  • =:等于。
  • <>!=:不等于。
  • >:大于。
  • <:小于。
  • >=:大于等于。
  • <=:小于等于。
  • <=>(NULL-safe equal):如果两个表达式都是NULL,则返回TRUE;否则,按照=运算符的规则进行比较。

示例

  1. SELECT * FROM employees WHERE salary > 50000;

7.1.3 逻辑运算符

逻辑运算符用于组合或修改条件语句的结果,主要用于WHERE子句或IF()等函数中。

  • AND:逻辑与,如果两个条件都为TRUE,则结果为TRUE;否则为FALSE。
  • OR:逻辑或,如果任一条件为TRUE,则结果为TRUE;两个条件都为FALSE时,结果为FALSE。
  • NOT:逻辑非,反转条件的结果。如果条件为TRUE,则结果为FALSE;如果条件为FALSE,则结果为TRUE。

示例

  1. SELECT * FROM employees WHERE department_id = 1 AND salary > 60000;

7.1.4 位运算符

位运算符对整数类型的数据进行按位操作,如位与、位或、位非等。这些运算符在处理二进制数据时非常有用。

  • &:位与(AND)。
  • |:位或(OR)。
  • ^:位异或(XOR)。
  • ~:位非(NOT)。
  • <<:左移。
  • >>:右移。

注意:位运算符的使用相对专业,通常用于需要精确控制数据位级的场景。

示例

  1. SELECT 5 & 3 AS BitwiseAND, 5 | 3 AS BitwiseOR, 5 ^ 3 AS BitwiseXOR;

7.1.5 字符串运算符

MySQL中的字符串运算符主要用于字符串的连接和比较。

  • ||CONCAT():用于连接两个或多个字符串。MySQL的默认行为可能因版本而异,建议使用CONCAT()函数以确保兼容性。
  • =<><><=>=(字符串比较):当用于字符串时,这些比较运算符基于字符的ASCII(或Unicode)值进行比较。
  • LIKENOT LIKE:用于在字符串中搜索模式。
  • REGEXPNOT REGEXP:使用正则表达式进行更复杂的模式匹配。

示例

  1. SELECT CONCAT('Hello, ', 'World!') AS ConcatenatedString;
  2. SELECT * FROM users WHERE username LIKE 'J%';

7.1.6 特殊运算符

MySQL还提供了一些特殊运算符,用于处理特定的数据操作或查询需求。

  • IS NULLIS NOT NULL:用于检查一个值是否为NULL。
  • BETWEEN … AND …:用于选取介于两个值之间的数据范围(包括边界值)。
  • IN:用于指定多个可能的值,以便在WHERE子句中进行匹配。
  • CASE:条件表达式,类似于其他编程语言中的switch或if-else语句,用于在SQL查询中实现复杂的条件逻辑。

示例

  1. SELECT * FROM products WHERE price BETWEEN 10 AND 100;
  2. SELECT * FROM employees WHERE department_id IN (1, 3, 5);
  3. SELECT name,
  4. CASE
  5. WHEN salary <= 30000 THEN 'Junior'
  6. WHEN salary BETWEEN 30001 AND 70000 THEN 'Mid-Level'
  7. ELSE 'Senior'
  8. END AS Level
  9. FROM employees;

总结

MySQL中的运算符是实现复杂数据操作和逻辑判断的重要工具。通过掌握算术运算符、比较运算符、逻辑运算符、位运算符、字符串运算符以及特殊运算符的使用,可以有效地构建出满足各种需求的SQL查询语句。在实际应用中,根据具体的数据处理需求选择合适的运算符,是提升数据库操作效率和准确性的关键。希望本章内容能够帮助读者更好地理解MySQL中的运算符,并在实际工作中灵活运用。


该分类下的相关小册推荐: