运算符章节和上篇文章中的WHERE过滤配套使用,利用这些和WHERE的配合,查询出自己想要的数据!
运算符 | 名称 | 作用 | 示例 |
---|---|---|---|
+ | 加法运算符 | 计算两个表达式或变量的和 | SELECT A + B |
- | 减法运算符 | 计算两个表达式或变量的差 | SELECT A - B |
* | 乘法运算符 | 计算两个表达式或变量的乘积 | SELECT A * B |
/ | 除法运算符 | 计算两个表达式或变量的商 | SELECT A / B |
% | 取模运算符 | 计算两个表达式或变量的余数 | SELECT A % B |
一个整数类型的值对整数进行加法和减法操作,结果还是一个整数;
一个整数类型的值对浮点数进行加法和剑法操作,结果还是一个浮点数;
加法和减法的优先级相同,进行先加后减操作与进行先减后加操作的结果是一样的;
在Java中,+的左右两边如果有字符串,那么表示字符串的拼接,但是MySQL中加号只表示数值的相加,如果想在MySQL中实现字符串拼接,可以用函数**CONCAT()**实现;
一个数乘以一个整数1和除以一个整数1后仍得到原数。
一个数乘以浮点数1和除以浮点数1后变成浮点数,数值与原数相等;
一个数除以整数后,不管能否除尽,结果都为一个浮点数;
一个数除以另一个数,除不尽时,结果为一个浮点数,并保留到小数点后4位。
乘法和除法优先级相同,先乘后除和先除后乘结果相同。
在数学运算中,0不能做除数,在MySQL中,一个数除以0为NULL;
没啥说的,记住要取逆模,比如-11 % 2,MySQL算下来结果是-1,但是正确结果应该是(n % m + m) % m;(这就是取逆模,想深入了解可以看看别的文章)。
比较运算符用来对表达式左边的操作和右边的操作进行比较,比较的结果为真则返回1,比较的结果为假则返回0,其他情况则返回NULL;
1.等号与安全等于运算符
2.不等于运算符
还有很多其他的运算符
运算符 | 名称 | 作用 | 示例 |
---|---|---|---|
IS NOT NULL | 不为空运算符 | 判断值,字符串或表达式是否不为NULL | SELECT B FROM TABLE WHERE A IS NOT NULL |
LEAST | 最小值运算符 | 在多个值中返回最小值 | SELECT D FROM TABLE WHERE C LEAST(A, B) |
GREATEST | 最大值运算符 | 在多个值中返回最大值 | SELECT D FROM TABLE WHERE C GREATEST(A, B) |
BETWEEN AND | 两值之间的运算符 | 判断一个值在不在这个范围内 | SELECT D FROM TABLE WHERE C BETWEEN A AND B |
IS NULL | 为空运算符 | 判断一个值,字符串,或表达式是否为空 | SELECT B FROM TABLE WHERE A IS NULL |
IN | 属于运算符 | 判断一个值是否为列表中的任何一个值 | SELECT D FROM TABLE WHERE C IN (A, B) |
NOT IN | 不属于运算符 | 判断出一个值不在这个列表中 | SELECT D FROM TABLE WHERE C NOT IN (A, B) |
LIKE | 模糊匹配运算符 | 判断一个值是否符合模糊匹配规则 | SELECT C FROM TABLE WHERE A LIKE B |
REGEXP | 正则表达式运算符 | 判断一个值是否符合正则表达式的规则 | SELECT C FROM TABLE WHERE A REGEXP B |
RLIKE | 正则表达式运算符 | 判断一个值是否符合正则表达式的规则 | SELECT C FROM TABLE WHERE A RLIKE B |
对于上面表格中的运算符,用法和作用就是表格中的内容,其中有几点注意,LEAST, GREAST, IN, NOT IN其中可以放很多个数据,不是只能放两个,如果LEAST 或GREAST包含NULL的话,返回值也是NULL; IN 和 NOT IN如果IN中包含NULL的话不影响,但是要查询的数据是NULL的话,那么就会返回NULL。
LIKE也是如果给定值或条件是NULL的话,返回结果为NULL。
小拓展
SELECT job_id FROM jobs WHERE job_id like 'IT\_%';
SELECT job_id FROM jobs WHERE job_id LIKE 'IT$_%' ESCAPE '$';
逻辑运算符主要用于判断表达式的真假, 在MySQL中,逻辑运算符的返回结果为1,0,或NULL。
MySQL中支持4种逻辑运算符如下:
运算符 | 作用 | 示例 |
---|---|---|
NOT 或 ! | 逻辑非 | SELECT NOT A |
AND 或 && | 逻辑与 | SELECT A AND B |
OR 或 || | 逻辑或 | SELECT A OR B |
XOR | 逻辑异或 | SELECT A XOR B |
1.逻辑非运算符
逻辑非运算符表示当给定的值为FALSE时,返回TRUE,当给定的值为TRUE时返回FALSE,当给定值为NULL时,返回NULL。
2.逻辑与运算符
逻辑与运算符时当给定的所有值均为非0值,并且都不为NULL时,返回TRUE,当给定的一个值或多个值为FALSE时则返回FALSE,否则返回NULL。
3.逻辑或运算符
逻辑或运算符时当给定的所有值,如果有TRUE,就为TRUE(和NULL没关系),如果没TRUE,有NULL就NULL,没NULL就FALSE
4.逻辑异或运算符
逻辑异或运算符时当给定有一个为NULL时,返回NULL,如果两个非NULL值都是FALSE或都是TRUE,则返回FALSE,如果一个是FALSE,一个是TRUE,则返回是TRUE;
位运算是二进制数上进行计算的运算符。位运算符会先将操作数变成二进制数,然后进行位运算,最后将计算结果从二进制变回十进制。
MYSQL支持的位运算符如下
运算符 | 作用 | 示例 |
---|---|---|
& | 两个都是1,计算后才是1,否则计算后为0 | SELECT A & B |
| | 两个里面有一个是1,就是1,否则计算后为0 | SELECT A | B |
^ | 两个位不同才是1,相同是0 | SELECT A ^ B |
~ | 如果这个数这一位是1,变成0,反之变成1 | SELECT ~A |
>> | 按位右移,例如(二进制)1100 >> 1 为 110 | SELECT A >> 1 |
<< | 按位左移,例如 (二进制)1100 << 1 为 11000 | SELECT B << 2 |
上一篇:基于秒杀系统的企业开发设计思考
下一篇:TCP协议