SQL入门:数据库运算全解析-算术、比较与逻辑

数据库中的运算用于对数据进行处理和条件判断,主要分为算术运算、比较运算和逻辑运算三类,广泛应用于查询筛选、数据计算等场景。

一、算术运算

用于对数值型数据进行数学计算,支持字段间、字段与常量间的运算,结果可作为新字段或筛选条件。
常用运算符包括:

  • +(加):如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;

三、逻辑运算

用于组合多个条件,判断条件间的逻辑关系,主要用于WHEREHAVING子句中连接多个比较条件。
常用运算符包括:

  • 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));

三类运算常结合使用:算术运算处理数值,比较运算判断单条件,逻辑运算组合多条件,共同实现复杂的数据查询和筛选逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值