内容简介:本文主要介绍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
