2-2算数运算符和比较运算符

SQL
Author

Rui

Published

November 10, 2022

2-2 算数运算符和比较运算符

算数运算符

计算商品单价的两倍并将其命名为 “sale_price_x2” 读取出来:

SELECT sale_price * 2 AS "sale_price_x2"
  FROM Product;
8 records
sale_price_x2
2000
1000
8000
6000
13600
1000
1760
200
SQL 四则运算
含义 运算符
加法 +
减法 -
乘法 *
除法 /
Note
  • 使用圆括号 () 可以提升运算优先级;

  • 对 NULL 使用一切算数运算结果都返回 NULL (缺失值具有传染性)

比较运算符

SQL 比较运算符
含义 运算符
相等 =
不相等 <>
大于等于 >=
大于 >
小于等于 <=
小于 <
Note

注意 > 与 = 的顺序!

与 WHERE 语句连用:

SELECT product_name, product_type, sale_price
  FROM Product
 WHERE sale_price >= 1000;
4 records
product_name product_type sale_price
T恤衫 衣服 1000
运动T恤 衣服 4000
菜刀 厨房用具 3000
高压锅 厨房用具 6800

还可以加入算数运算符:

SELECT product_name, product_type, sale_price
  FROM Product
 WHERE sale_price - purchase_price >= 500;
3 records
product_name product_type sale_price
T恤衫 衣服 1000
运动T恤 衣服 4000
高压锅 厨房用具 6800

可以对字符串使用不等号吗?

答案是可以,但是结果可能让你出乎意料。因为字符串”大小”的比较是基于”顺序”来进行判断的。

比如给出以下字符串,其顺序为:

字符串
1
1-1
1-2
2
2-1
2-2
3

原则上按照字典顺序进行排序,根据这种顺序,其大小为: ‘1’ < ‘1-1’ < ‘1-2’ < … < ‘2-2’ < ‘3’

Note
  • 对 NULL 使用比较运算符的结果还是 NULL (缺失值具有传染性);

  • 同样的道理,原本包含 NULL 的记录也无法使用 WHERE <列名> = NULL 检索出来。

NULL 特有的运算符

使用 IS NULL 可以获取包含 NULL 的记录;使用 IS NOT NULL 可以获取不包含 NULL 的记录。