版本比较
比较
标识
- 该行被添加。
- 该行被删除。
- 格式已经改变。
将操作数和运算符组合成表达式,作为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(也可以写作 || ) | ||
XOR | a XOR b | 异或,a和b只有一个为真时,表达式为真 |
表达式的使用
- 作为计算字段放在 SELECT 子句中,比如
SELECT number, subject, socre + 100 AS score FROM student_score;
- 作为匹配条件放在 WHERE 子句中,比如
SELECT number, subject, score FROM student_score WHERE score >= 60;
表达式中的NULL
- NULL作为算术运算符的操作数时,表达式的结果都为NULL,比如1 + NULL。
- 除<=>、IS NULL、IS NOT NULL外,NULL参与其他比较运算符的操作,表达式的结果都为NULL。<=>称为NULL值安全等于运算符,当<=>的操作数不包含NULL时,它的功能与=相同,当两个操作数有一个为NULL时,结果为0,当两个都为NULL时,结果为1。
函数
字符串处理函数
用于字符串大小写转换,取子串,连接字符串,计算长度等操作。
日期和时间处理函数
用于获取当前时间,年份,月份,日期,时,分,秒等操作,还可以计算两个时间的差值。
数值处理函数
比如获取绝对值,求模,求平方根,求随机数,求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函数
目录 |
---|