将操作数和运算符组合成表达式,作为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