Mysql 基础(七) 算术预算符和比较运算符

Mysql 基础(七) 算术预算符和比较运算符

学习是劳动,是充满思想的劳动。——乌申斯基

学习重点

  • 运算符就是对两边的列或者值进行运算(计算或者比较大小等)的符号

  • 使用算数运算符可以进行四则运算

  • 括号可以提升运算的优先顺序(优先进行运算)

  • 包含 NULL 的运算其结果也是 NULL

  • 比较运算符可以用来判断列或者值是否相等,还可以用来比较大小

  • 判断是否为 NULL,需要使用 IS NULL 或者 IS NOT NULL 运算符

算术运算符

  • SQL 语句中使用计算表达式,比如上个单元的例子 把 sale_price 的单价 2 倍以”sale_price_x2”列的形式读取出来

SELECT product_name,sale_price,sale_price*2 AS '翻倍价格' from Product
  • 最后结果
product_name sale_price 翻倍价格
T 恤衫 1000 2000
打孔器 500 1000
运动 T 恤 4000 8000
菜刀 3000 6000
高压锅 6800 13600
叉子 500 1000
擦菜板 880 1760
圆珠笔 100 200

四则运算是以+,-,x,/为基准 SQL 除了算术运算符之外还有其他各种各样的运算符

SELECT 子句中也可以使用常数或者表达式

当然 SQL 中也可以像平常的运算表达式那样使用括号(),括号中的运算表达式的优先级会得到提升,优先运算例如(1+2)3 会先计算 1+2 的值然后在对其结果3 运算

括号的使用并不仅仅局限于四则运算,还可以用在 SQL 语句的任何表达式

需要注意 NULL

  • SQL 语句进行运算的时候,需要特别注意含有 NULL 的运算。

5+NULL
10-NULL
1*NULL
4/NULL
NULL/9
NULL/0

# 这样所有的结果都是NULL

包含 NULL 的计算,结果肯定都是 NULL

比较运算符

  • ,<, = ,<> 表示不等于,>=,<=


SELECT product_name,product_type from Product WHERE sale_price>50

最后结果

product_name product_type
T 恤衫 衣服
打孔器 办公用品
运动 T 恤 衣服
菜刀 厨房用具
高压锅 厨房用具
叉子 厨房用具
擦菜板 厨房用具
圆珠笔 办公用品

像符号=这样用来比较其两边的列或者值的符号称为比较运算符.符号=就是比较运算符,在 where 子句中通过使用比较运算符可以组合各种条件表达式


SELECT product_name,product_type from Product WHERE sale_price <> 50

最后结果

product_name product_type
T 恤衫 衣服
打孔器 办公用品
运动 T 恤 衣服
菜刀 厨房用具
高压锅 厨房用具
叉子 厨房用具
擦菜板 厨房用具
圆珠笔 办公用品

SELECT product_name,product_type from Product WHERE regist_date < '2009-09-27'

最后结果

product_name product_type
T 恤衫 衣服
打孔器 办公用品
菜刀 厨房用具
高压锅 厨房用具
叉子 厨房用具
擦菜板 厨房用具
  • 也可以使用计算表达式

SELECT product_name,sale_price,purchase_price from Product WHERE sale_price - purchase_price >= 500

最后结果

product_name sale_price purchase_price
T 恤衫 1000 500
运动 T 恤衫 4000 2800
高压锅 6800 5000

对字符串使用比较运算的注意事项

  • 字符串类型的数据原则上按照字典顺序进行排序,不能与数字大小顺序混淆

比如字符串要是个字符串的数字比如’10’ ‘2’ 那么它不会变成数字来比较,而是按照一定的顺序来比较
这里的’10’和’2’比较 最后的结果是’2’大

不能对 NULL 使用比较运算符

  • 数据里面只要有 NULL 那么 不能使用运算符比较

SELECT product_name,purchase_price from Product WHERE purchase_price = NULL

这样最后结果一条也取不出来,即使使用<>也没有用

  • 必须使用 IS NULL 或者 IS NOT NULL

SELECT product_name,purchase_price FROM Product WHERE purchase_price IS NULL

最后结果

product_name purchase_price
叉子 NULL
圆珠笔 NULL

SELECT product_name,purchase_price FROM Product WHERE purchase_price IS NOT NULL

最后结果

product_name purchase_price
T 恤衫 500
打孔器 320
运动 T 恤 2800
菜刀 2800
高压锅 5000
擦菜板 790

希望选取 NULL 时,必须使用 IS NULL 或者 NOT NULL


文章作者: 雾烟云
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 雾烟云 !
  目录