MySQL 算术运算符
运 算 符 | 含 义 |
+ | 加法运算 |
- | 减法运算 |
* | 乘法运算 |
/ | 除法运算,返回商 |
% | 求余运算,返回余数 |
示例:
create table tmp1(num int);
insert into tmp1 value(99);
select num, num+1, num-5+1, num*2, num/3, num/7, num%4 from tmp1
注意:
在数学运算时,除数为 0 的时候无意义,因此除法运算中除数不能为 0,如果被 0 除,则返回结果为 null。
例如:select num, num/0, num%0 from tmp1;
MySQL 比较运算符
运 算 符 | 含 义 |
= | 等于 |
<=> | 安全等于,可以比较 null |
<> 或 != | 不等于 |
>= | 大于等于 |
<= | 小于等于 |
> | 大于 |
< | 小于 |
IS NULL | 判断一个值是否为 null |
IS NOT NULL | 判断一个值是否不为 null |
示例:
select 1=2, 3=3,'3'=3,1>2, '3'<=>3, 'a'='a', 'a'<=>'a', 2+4=3+3, NULL=NULL, NULL<=>NULL
说明:
MySQL 进行数值比较时规则如下:
- 若有一个或两个参数为 null,则比较运算的结果为 null。
- 若同一个比较运算中的两个参数都是字符串,则按照字符串进行比较。
- 若两个参数均为正数则按照整数进行比较。
- 若一个字符串和一个数字进行相等判断,则 MySQL 可以自动将字符串转换为数字。
MySQL 逻辑运算符
运 算 符 | 含 义 |
AND 或者 && | 逻辑与,含义为“并且”。当所有操作数均为非零值且不为 null 时,返回值为 1;当一个或多个操作数为 0 时,返回值为 0;其余情况返回值为 null |
OR 或者 || | 逻辑或,含义为“或者”。当所有操作数均不为 null 且任意一个操作数为非零时,返回值为 1,否则为 0;当有操作数为 null,且存在另一个操作数为非零时,返回值为 1,否则为 null;当所有操作数均为 null 时,返回值为 null |
NOT 或者 ! | 逻辑非,含义为“取反”。当操作数为 0 时,返回值为 1;当操作数为非零时,返回值为 0;当操作数为 null 时,返回值为 null |
XOR | 逻辑异或。当任意一个操作数为 null 时,返回值为 null;对于非 null 的操作数,如果两个操作数都是非零或者都是零,则返回值为 0;如果一个为零,另一个为非零,返回结果为 1 |
条件查询中的运算符
单条件查询:
select * from line where miles>20
select * from line where company=' 公交三公司 '
select * from line where company<>' 通恒公司 '
或
select * from line where company!=' 通恒公司 '
多条件查询:
select * from line where company=' 公交二公司 ' and miles>=20
或
select * from line where company=' 公交二公司 ' && miles>=20
select * from line where company=' 公交三公司 ' or company=' 公交四公司 '
或
select * from line where company=' 公交三公司 ' || company=' 公交四公司 '
示例:
使用多条件查询所有属于公交三公司和公交四公司且营运里程数大于 25 千米的线路信息
代码如下:
select * from line where (company=' 公交三公司 ' or company=' 公交四公司 ') and miles>25
具体如下:
还有点补充:
示例:
查询地址为空的驾驶员信息。
select * from driver where phone IS NULL
查询不为空的信息。
select * from vehicle where driverID IS NOT NULL