数据库中的运算用于对数据进行处理和条件判断,主要分为算术运算、比较运算和逻辑运算三类,广泛应用于查询筛选、数据计算等场景。
一、算术运算
用于对数值型数据进行数学计算,支持字段间、字段与常量间的运算,结果可作为新字段或筛选条件。
常用运算符包括:
+(加):如price + 10计算加价 10 后的价格;-(减):如stock - sales计算剩余库存;*(乘):如quantity * unit_price计算总价;/(除):如total / count计算平均值(注意除数不能为 0);%(取模 / 取余):如id % 2判断 ID 为奇偶数。
示例:查询订单金额加税后的总价(税率 13%)
SELECT order_id, amount, amount * 1.13 AS tax_included_amount FROM orders;
二、比较运算
用于判断数据间的大小或相等关系,返回布尔值(TRUE/1 或 FALSE/0),主要用于WHERE子句筛选数据。
常用运算符包括:
=(等于):如status = '已支付'筛选已支付订单;<>或!=(不等于):如gender <> '男'筛选非男性用户;>(大于)、<(小于):如amount > 1000筛选金额超 1000 的订单;>=(大于等于)、<=(小于等于):如age >= 18筛选成年用户;BETWEEN ... AND ...(在范围内):如create_time BETWEEN '2025-01-01' AND '2025-12-31'筛选全年数据;IN (...)(在列表中):如status IN ('待支付', '已取消')筛选特定状态订单;NOT IN (...)(不在列表中):与IN相反;LIKE(模糊匹配):%匹配任意字符,_匹配单个字符,如username LIKE '张%'匹配姓张的用户;IS NULL(为空)、IS NOT NULL(不为空):如email IS NULL筛选未填写邮箱的用户。
示例:查询 2025 年创建的、金额在 500 到 2000 之间的订单
SELECT * FROM orders
WHERE create_time BETWEEN '2025-01-01' AND '2025-12-31'
AND amount >= 500 AND amount <= 2000;
三、逻辑运算
用于组合多个条件,判断条件间的逻辑关系,主要用于WHERE或HAVING子句中连接多个比较条件。
常用运算符包括:
AND(与):所有条件同时满足才成立,如status = '已支付' AND amount > 500;OR(或):任意一个条件满足即成立,如status = '已取消' OR create_time < '2024-01-01';NOT(非):取反条件结果,如NOT (amount > 1000)等效于amount <= 1000。
优先级:NOT > AND > OR,可通过括号()调整优先级,避免逻辑错误。
示例:查询 “已支付且金额超 2000” 或 “未支付但创建时间在 3 天内” 的订单
SELECT * FROM orders
WHERE (status = '已支付' AND amount > 2000)
OR (status = '未支付' AND create_time >= DATE_SUB(CURDATE(), INTERVAL 3 DAY));
三类运算常结合使用:算术运算处理数值,比较运算判断单条件,逻辑运算组合多条件,共同实现复杂的数据查询和筛选逻辑。
1013

被折叠的 条评论
为什么被折叠?



