版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

将操作数和运算符组合成表达式,作为MySQL的操作对象。操作数包括以下几类:

  • 常数,比如 SELECT 1;
  • 列名,比如 SELECT number FROM student_info;
  • 函数调用,比如 SELECT NOW(); 
  • 其他更复杂的表达式,比如 SELECT (col-1) / 3;

算术运算符

运算符示例描述
+

-

*



/
除法,保留商的小数部分
DIV
除法,整除,不保留小数部分
%
取余
-
取负数

比较运算符

运算符示例描述
=

<=>

<> 或 !=

<

<=

>

>=

BETWEEN

NOT BETWEEN

IN

NOT IN

IS NULL

IS NOT NULL

LIKE

NOT LIKE

逻辑运算符

运算符示例描述
NOT(也可以写作 ! )

AND(也可以写作 && )

OR(也可以写作 || )

XORa XOR b异或,a和b只有一个为真时,表达式为真

表达式的使用

  1. 作为计算字段放在 SELECT 子句中,比如 SELECT number, subject, socre + 100 AS score FROM student_score;
  2. 作为匹配条件放在 WHERE 子句中,比如 SELECT number, subject, score FROM student_score WHERE score >= 60;

表达式中的NULL
表达式中的NULL

表达式中的NULL

  • NULL作为算术运算符的操作数时,表达式的结果都为NULL,比如1 + NULL。
  • 除<=>、IS NULL、IS NOT NULL外,NULL参与其他比较运算符的操作,表达式的结果都为NULL。<=>称为NULL值安全等于运算符,当<=>的操作数不包含NULL时,它的功能与=相同,当两个操作数有一个为NULL时,结果为0,当两个都为NULL时,结果为1。
  • 关于<=>和NULL值安全可以参考下面的示例进行理解:

    代码块
    mysql> SELECT NULL = NULL;
    +-------------+
    | NULL = NULL |
    +-------------+
    |        NULL |
    +-------------+
    1 row in set (0.00 sec)
    
    mysql> SELECT NULL <=> NULL;
    +---------------+
    | NULL <=> NULL |
    +---------------+
    |             1 |
    +---------------+
    1 row in set (0.00 sec)

函数

字符串处理函数

用于字符串大小写转换,取子串,连接字符串,计算长度等操作。

日期和时间处理函数

用于获取当前时间,年份,月份,日期,时,分,秒等操作,还可以计算两个时间的差值。

数值处理函数

比如获取绝对值,求模,求平方根,求随机数,求ceil和floor等。

流程控制表达式和函数

代码块
CASE WHEN 表达式1 THEN 结果1 [WHEN 表达式2 THEN 结果2 ...] [ELSE 默认结果] END

示例:

代码块
mysql> SELECT number, subject, score,
    ->    CASE WHEN score < 60 THEN '不及格'
    ->         WHEN score < 90 THEN '及格'
    ->         ELSE '优秀' END AS level
    ->    FROM student_score;


CASE表达式的第二种形式:

代码块
CASE 待比较的表达式 WHEN 表达式1 THEN 结果1 [WHEN 表达式2 THEN 结果2 ...] [ELSE 默认结果] END

示例:

代码块
mysql> SELECT name, department,
    ->    CASE department WHEN '计算机学院' THEN '1级学科',
    ->                    WHEN '航天学院' THEN '2级学科' END AS 学院类别
    ->    FROM student_info;


和IF相关的三个判断函数:

  • IF(表达式1, 表达式2, 表达式3)
    • 当表达式1为true时,函数返回值为表达式2,否则为表达式3。
  • IFNULL(表达式1, 表达式2)
    • 当表达式1为NULL时,函数返回表达式2,否则返回表达式1。
  • NULLIF(表达式1, 表达式2)
    • 当表达式1和表达式2值相同时,表达式返回NULL,否则返回表达式1。

汇总函数

也称为统计函数或者聚集函数,常见的有以下几个:

  • MAX(表达式)
  • MIN(表达式)
  • SUM(表达式)
  • AVG函数
  • COUNT函数





目录