1. 首页 > MySQL教程 > 正文

MySQL教程FG073-MySQL运算符使用详解

GF-MySQL

内容简介:本文主要介绍MySQL相关知识,包括安装、配置、优化等内容。风哥教程参考MySQL官方文档MySQL SQL Syntax、MySQL Server Administration。

Part01-基础概念与理论知识

1.1 什么是运算符

运算符是一种特殊的符号,用于执行特定的操作,如算术运算、比较运算、逻辑运算等。在MySQL中,运算符用于构建表达式,进行数据操作和条件判断。

1.2 MySQL运算符的分类

  • 算术运算符:用于执行算术运算
  • 比较运算符:用于比较值
  • 逻辑运算符:用于执行逻辑操作
  • 位运算符:用于执行位级操作
  • 赋值运算符:用于赋值操作
  • 其他运算符:如LIKE、IN、BETWEEN等

Part02-生产环境规划与建议

2.1 常用算术运算符

运算符 描述 示例 结果
+ 加法 5 + 3 8
- 减法 5 – 3 2
* 乘法 5 * 3 15
/ 除法 5 / 3 1.6667
% 取模 5 % 3 2
DIV 整数除法 5 DIV 3 1
MOD 取模(同%) 5 MOD 3 2

2.2 算术运算符的使用

示例: 01 更多视频教程www.fgedu.net.cn

-- 基本算术运算
SELECT 
    5 + 3 AS addition,
    5 - 3 AS subtraction,
    5 * 3 AS multiplication,
    5 / 3 AS division,
    5 % 3 AS modulus,
    5 DIV 3 AS integer_division,
    5 MOD 3 AS modulus_alt;

-- 在表中使用算术运算符
CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    price DECIMAL(10,2),
    quantity INT
);

INSERT INTO products (name, price, quantity) 
VALUES ('产品1', 100.00, 5), ('产品2', 200.00, 3), ('产品3', 150.00, 2);

-- 计算总价值
SELECT 
    name,
    price,
    quantity,
    price * quantity AS total_value
FROM products;
            

Part03-生产环境项目实施方案

3.1 常用比较运算符

运算符 描述 示例 结果
= 等于 5 = 3 FALSE
<>!= 不等于 5 <> 3 TRUE
< 小于 5 < 3 FALSE
> 大于 5 > 3 TRUE
<= 小于等于 5 <= 3 FALSE
>= 大于等于 5 >= 3 TRUE
<=> 安全等于(处理NULL) NULL <=> NULL TRUE

3.2 比较运算符的使用

示例:

-- 基本比较运算
SELECT 
    5 = 3 AS equal,
    5 <> 3 AS not_equal,
    5 < 3 AS less_than,
    5 > 3 AS greater_than,
    5 <= 3 AS less_than_or_equal,
    5 >= 3 AS greater_than_or_equal,
    NULL <=> NULL AS null_safe_equal,
    5 <=> 5 AS null_safe_equal_value;

-- 在表中使用比较运算符
SELECT * FROM products WHERE price > 150;
SELECT * FROM products WHERE quantity <= 3;
SELECT * FROM products WHERE price = 100.00;
            

Part04-生产案例与实战讲解

4.1 常用逻辑运算符

运算符 描述 示例 结果
AND&& 逻辑与 TRUE AND FALSE FALSE
OR|| 逻辑或 TRUE OR FALSE TRUE
NOT! 逻辑非 NOT TRUE FALSE
XOR 逻辑异或 TRUE XOR FALSE TRUE

4.2 逻辑运算符的使用

示例: 02 学习交流加群风哥微信: itpux-com

-- 基本逻辑运算
SELECT 
    TRUE AND FALSE AS logical_and,
    TRUE OR FALSE AS logical_or,
    NOT TRUE AS logical_not,
    TRUE XOR FALSE AS logical_xor;

-- 在表中使用逻辑运算符
SELECT * FROM products WHERE price > 100 AND quantity > 2;
SELECT * FROM products WHERE price < 150 OR quantity < 3;
SELECT * FROM products WHERE NOT (price = 100.00);
            

Part05-风哥经验总结与分享

5.1 常用位运算符

运算符 描述 示例 结果
& 位与 5 & 3 1
| 位或 5 | 3 7
^ 位异或 5 ^ 3 6
~ 位取反 ~5 -6
<< 左移 5 << 1 10
>> 右移 5 >> 1 2

5.2 位运算符的使用

示例: 03 学习交流加群风哥QQ113257174

-- 基本位运算
SELECT 
    5 & 3 AS bit_and, -- 101 & 011 = 001
    5 | 3 AS bit_or, -- 101 | 011 = 111
    5 ^ 3 AS bit_xor, -- 101 ^ 011 = 110
    ~5 AS bit_not, -- 取反
    5 << 1 AS left_shift, -- 左移1位
    5 >> 1 AS right_shift; -- 右移1位

-- 在表中使用位运算符
CREATE TABLE flags (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    flag BIT(8)
);

INSERT INTO flags (name, flag) 
VALUES ('测试1', b'10101010'), ('测试2', b'11110000'), ('测试3', b'00001111');

-- 使用位运算符查询
SELECT * FROM flags WHERE (flag & b'10000000') = b'10000000';
SELECT * FROM flags WHERE (flag & b'00001111') = b'00001111';
            

6. 赋值运算符

6.1 常用赋值运算符

运算符 描述 示例 结果
= 赋值 x = 5 x的值为5
+= 加赋值 x += 5 x = x + 5
-= 减赋值 x -= 5 x = x – 5
*= 乘赋值 x *= 5 x = x * 5
/= 除赋值 x /= 5 x = x / 5
%= 取模赋值 x %= 5 x = x % 5

6.2 赋值运算符的使用

示例:

-- 基本赋值运算
SET @x = 10;
SELECT @x;

SET @x += 5;
SELECT @x;

SET @x -= 3;
SELECT @x;

SET @x *= 2;
SELECT @x;

SET @x /= 4;
SELECT @x;

SET @x %= 3;
SELECT @x;

-- 在UPDATE语句中使用赋值运算符
UPDATE products SET quantity += 1 WHERE id = 1;
SELECT * FROM products WHERE id = 1;
            

7. 其他运算符

7.1 LIKE运算符

用于模糊匹配字符串。

示例:

-- LIKE运算符
SELECT * FROM products WHERE name LIKE '产品%';
SELECT * FROM products WHERE name LIKE '%1';
SELECT * FROM products WHERE name LIKE '%产品%';
            

7.2 IN运算符

用于判断值是否在指定的集合中。

示例:

-- IN运算符
SELECT * FROM products WHERE price IN (100.00, 150.00);
SELECT * FROM products WHERE quantity IN (2, 3);
            

7.3 BETWEEN运算符

用于判断值是否在指定的范围内。

示例:

-- BETWEEN运算符
SELECT * FROM products WHERE price BETWEEN 100.00 AND 200.00;
SELECT * FROM products WHERE quantity BETWEEN 1 AND 3;
            

7.4 IS NULL和IS NOT NULL运算符

用于判断值是否为NULL。

示例:

-- IS NULL和IS NOT NULL运算符
SELECT * FROM products WHERE name IS NULL;
SELECT * FROM products WHERE name IS NOT NULL;
            

7.5 EXISTS运算符

用于判断子查询是否返回结果。

示例: 04 风哥提示:

-- EXISTS运算符
SELECT * FROM products p WHERE EXISTS (
    SELECT 1 FROM products WHERE price > 150
);
            

8. 运算符优先级

优先级 运算符
1 ~(位取反)
2 *, /, %, DIV, MOD
3 +, -
4 <<, >>
5 &
6 ^
7 |
8 =, <=>, <, <=, >, >=, <>, !=, IS, LIKE, REGEXP, IN
9 NOT
10 AND, &&
11 XOR
12 OR, ||

9. 运算符使用最佳实践

9.1 括号的使用

当表达式包含多个运算符时,使用括号明确运算顺序,提高代码可读性。

示例:

-- 使用括号明确运算顺序
SELECT (5 + 3) * 2 AS with_parentheses;
SELECT 5 + 3 * 2 AS without_parentheses;
            

9.2 比较运算符的使用

  • 使用<=>处理可能为NULL的值
  • 避免在索引列上使用函数,会导致索引失效

9.3 逻辑运算符的使用

  • 使用短路求值提高性能
  • 合理使用AND和OR的顺序,将最可能为FALSE的条件放在前面

9.4 位运算符的使用

  • 用于存储多个布尔标志
  • 提高存储空间利用率

10. 常见错误与解决方案

10.1 运算符优先级错误

问题:表达式运算结果不符合预期 05更多学习教程公众号风哥教程itpux_com

解决方案:使用括号明确运算顺序

10.2 NULL值处理错误

问题:NULL值参与运算导致结果不符合预期 06 from mysql视频:www.itpux.com

解决方案:使用IS NULL或IS NOT NULL判断,或使用COALESCE函数处理NULL值

10.3 类型转换错误

问题:不同类型的值进行运算导致错误

解决方案:使用CAST或CONVERT函数进行类型转换

11. 示例:综合使用运算符

示例:

-- 创建销售表
CREATE TABLE fgsales (
    id INT AUTO_INCREMENT PRIMARY KEY,
    product_id INT,
    quantity INT,
    unit_price DECIMAL(10,2),
    sale_date DATE,
    status ENUM('待付款', '待发货', '已发货', '已完成', '已取消')
);

-- 插入销售数据
INSERT INTO fgsales (product_id, quantity, unit_price, sale_date, status) 
VALUES 
    (1, 2, 100.00, '2023-01-01', '已完成'),
    (2, 1, 200.00, '2023-01-02', '已完成'),
    (3, 3, 150.00, '2023-01-03', '已发货'),
    (1, 1, 100.00, '2023-01-04', '待付款'),
    (2, 2, 200.00, '2023-01-05', '待发货');

-- 计算销售总额
SELECT 
    SUM(quantity * unit_price) AS total_fgsales
FROM fgsales;

-- 查询2023年1月的销售数据
SELECT * FROM fgsales WHERE sale_date BETWEEN '2023-01-01' AND '2023-01-31';

-- 查询已完成的销售,且数量大于1
SELECT * FROM fgsales WHERE status = '已完成' AND quantity > 1;

-- 查询销售额大于200的销售
SELECT * FROM fgsales WHERE quantity * unit_price > 200;
            

12. 总结

本教程详细介绍了MySQL的运算符使用,包括:

  • 运算符概述
  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 其他运算符
  • 运算符优先级
  • 运算符使用最佳实践
  • 常见错误与解决方案

运算符是MySQL中构建表达式的重要组成部分,掌握各种运算符的使用方法对于编写高效、正确的SQL语句非常重要。在实际项目中,应根据具体的业务需求选择合适的运算符,并注意运算符的优先级和使用技巧,以提高SQL语句的性能和可读性。

提示:在使用运算符时,应注意数据类型的匹配和NULL值的处理,以避免出现意外的结果。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息