mysql运算符

栏目: mysql 发布时间:2024-11-22

MySQL运算符教程

在MySQL中,运算符用于执行各种操作,如算术运算、比较、逻辑运算、位运算等。这些运算符使得我们可以在查询中进行数据计算、条件判断和数据操作。本教程将详细介绍MySQL中的各种运算符及其用法。

一、算术运算符

算术运算符用于执行数学运算,包括加法、减法、乘法、除法和取模运算。

  • +:加法
  • -:减法
  • *:乘法
  • /:除法
  • %:取模(余数)

示例:

SELECT 5 + 3;  -- 输出:8
SELECT 10 - 4;  -- 输出:6
SELECT 7 * 2;  -- 输出:14
SELECT 10 / 2;  -- 输出:5
SELECT 10 % 3;  -- 输出:1

二、比较运算符

比较运算符用于比较两个值,并返回布尔值(TRUE或FALSE)。

  • =:等于
  • <>!=:不等于
  • >:大于
  • <:小于
  • >=:大于等于
  • <=:小于等于
  • <=>:NULL安全等于(如果两个值都是NULL,则返回TRUE)

示例:

SELECT 5 = 5;  -- 输出:TRUE
SELECT 5 <> 3;  -- 输出:TRUE
SELECT 10 > 5;  -- 输出:TRUE
SELECT 3 < 7;  -- 输出:TRUE
SELECT 5 >= 5;  -- 输出:TRUE
SELECT 8 <= 10;  -- 输出:TRUE
SELECT NULL <=> NULL;  -- 输出:TRUE

三、逻辑运算符

逻辑运算符用于结合布尔表达式,并返回布尔结果。

  • AND:逻辑与(两个表达式都为TRUE时返回TRUE)
  • OR:逻辑或(至少一个表达式为TRUE时返回TRUE)
  • NOT:逻辑非(将表达式的布尔值取反)

示例:

SELECT 1 = 1 AND 2 = 3;  -- 输出:FALSE
SELECT 1 = 1 OR 2 = 3;  -- 输出:TRUE
SELECT NOT (1 = 2);  -- 输出:TRUE

四、位运算符

位运算符用于对二进制位进行操作。

  • &:按位与
  • |:按位或
  • ^:按位异或
  • ~:按位非
  • <<:左移
  • >>:右移

示例:

SELECT 5 & 3;  -- 输出:1(二进制:0101 & 0011 = 0001)
SELECT 5 | 3;  -- 输出:7(二进制:0101 | 0011 = 0111)
SELECT 5 ^ 3;  -- 输出:6(二进制:0101 ^ 0011 = 0110)
SELECT ~5;     -- 输出:-6(二进制:~0101 = 1010,在有符号二进制补码表示中)
SELECT 2 << 1; -- 输出:4(二进制:0010 << 1 = 0100)
SELECT 4 >> 1; -- 输出:2(二进制:0100 >> 1 = 0010)

注意:位运算符的结果可能受MySQL存储整数的方式(如有符号或无符号)影响。

五、其他运算符

  • 赋值运算符= 用于将值赋给变量或列。
  • NULL运算符IS NULLIS NOT NULL 用于检查值是否为NULL。
  • 范围运算符BETWEEN ... AND ... 用于检查值是否在某个范围内(包括边界值)。
  • IN运算符:用于检查值是否在一组给定的值中。
  • LIKE运算符:用于模式匹配,通常与通配符%_一起使用。
  • REGEXP运算符:用于正则表达式匹配。

示例:

-- 赋值运算符(在UPDATE语句中使用)
UPDATE employees SET salary = salary + 1000 WHERE department = 'Sales';

-- NULL运算符
SELECT * FROM employees WHERE commission IS NULL;

-- 范围运算符
SELECT * FROM products WHERE price BETWEEN 10 AND 50;

-- IN运算符
SELECT * FROM customers WHERE country IN ('USA', 'Canada', 'UK');

-- LIKE运算符
SELECT * FROM products WHERE product_name LIKE 'A%';  -- 查找以'A'开头的所有产品

-- REGEXP运算符
SELECT * FROM employees WHERE name REGEXP '^[A-J]';  -- 查找名字以A到J开头的员工

六、注意事项

  • 运算符的优先级决定了在没有括号的情况下哪个运算符先被计算。例如,乘法和除法优先于加法和减法。
  • 使用括号可以强制改变运算符的默认优先级。
  • 当使用比较运算符和逻辑运算符时,要注意NULL值的处理。NULL在比较中通常被视为未知,因此任何与NULL的比较都会返回NULL(除了IS NULLIS NOT NULL)。

通过遵循这个教程,你可以掌握MySQL中的各种运算符及其用法,从而在查询中进行各种数据计算、条件判断和数据操作。

本文地址:https://www.tides.cn/p_mysql-operator