一、算术运算符
运算符 | 名称 | 作用 | 示例 |
---|---|---|---|
+ | 加法运算符 | 两个值的和 | SELECT A + B |
- | 减法运算符 | 两个值的差 | SELECT A - B |
* | 乘法运算符 | 两个值的乘积 | SELECT A * B |
/或DIV | 除法运算符 | 两个值的商 | SELECT A / B 或 SELECT A DIV B |
%或MOD | 求模(求余)运算符 | 两个值的余数 | SELECT A % B 或 SELECT A MOD B |
SELECT 100,100 + 1,100 - 1,100 * 2,100 + 1.2,100/2,100 DIV 2,100 % 3,100 MOD 3 FROM DUAL;
<img src="https://img-blog.csdnimg.cn/c6c644a9c29a4e84bc7706d52522f31d.png" alt="在这里插入图片描述" data-href="https://greatsql.cn/" style=""/>
- 在SQL中,除法默认是除不尽的,所以除法结果会默认转换成==浮点类型==。
<strong>注意:</strong>
SELECT 100 + '1' #在Java语言中,结果是:1001FROM DUAL;
<img src="https://img-blog.csdnimg.cn/98b36b790dcb4696bf9ec2fd65e807a9.png" alt="在这里插入图片描述" data-href="https://greatsql.cn/" style=""/>
在SQL中+没有连接的作用,就表示加法运算。此时会将字符串转换为数值(隐式转换) 如果在MySQL中字符串拼接要使用字符串函数CONCAT()实现
如果分母为0结果会为NULLSELECT 100 / 0FROM DUAL;
<img src="https://img-blog.csdnimg.cn/df94330cbc974cc0ae0f2519d6171463.png" alt="在这里插入图片描述" data-href="https://greatsql.cn/" style=""/>
SELECT 100 % 3,100 % -3,-100 % 3,-100 % -3FROM DUAL;
- 结果的符号主要是==看被模数==。
二、比较运算符
用来对表达式左边的操作数和右边的操作数进行比较,结果为真返回1,结果为假返回0,其他情况返回NULL
比较运算符经常用于SELECT查询语句来使用,返回符合的结果记录
运算符 | 名称 | 作用 | 示例 |
---|---|---|---|
= | 等于运算符 | 判断两个值是否相等 | SELECT C FROM TABLE WHERE A = B |
安全等于运算符 | 安全的判断两个值是否相等 | SELECT C FROM TABLE WHERE A B | |
(!=) | 不等于运算符 | 判断两个值是否不相等 | SELECT C FROM TABLE WHERE A (!=) B |
小于运算符 | 判断前面值是否小于后面的值 | SELECT C FROM TABLE WHERE A | |
小于等于运算符 | 判断前面值是否小于等于后面的值 | SELECT C FROM TABLE WHERE A | |
> | 大于运算符 | 判断前面值是否大于后面的值 | SELECT C FROM TABLE WHERE A > B |
=> | 大于等于运算符 | 判断前面值是否大于等于后面的值 | SELECT C FROM TABLE WHERE A => B |
- 字符串存在隐式转换,如果转换数值不成功,则看作0.
- 如果两边都是字符串的话,则按照ANSI的比较规则进行比较
- 只要有NULL参与判断的话,结果就为NULL
SELECT 1 = 'a', 1 = '1',0 = 'a'FROM DUAL;
<img src="https://img-blog.csdnimg.cn/c1e8805fae5e434fb2859505e33c3e74.png" alt="在这里插入图片描述" data-href="https://greatsql.cn/" style=""/>
- 安全等于 安全等于()和等于(=)的作用是相似的,唯一的区别就是可以用来对NULL进行判断,在两个数值均为NULL的时候,其返回值为1;当一个操作数为NULL时,其返回值为0,而不为NULL
SELECT 1 = NULL,NULL = NULL,1 <=> NULL,NULL <=> NULLFROM DUAL;
<img src="https://img-blog.csdnimg.cn/ff34a96944aa4f45a3d037d93bc51b07.png" alt="在这里插入图片描述" data-href="https://greatsql.cn/" style=""/>
- 非符号运算符
三、逻辑运算符
运算符 | 作用 | 示例 |
---|---|---|
NOT 或 ! | 逻辑非 | SELECT NOT A |
AND 或 && | 逻辑与 | SELECT A AND B |
OR 或 丨丨 | 逻辑或 | SELECT A OR B |
XOR | 逻辑异或 | SELECT A / B 或 SELECT A XOR B |
三、位运算符
位运算符是在二进制上进行计算的运算符,位运算符会将操作数变为二进制数,后进行位运算,最后将结果从二进制变回十进制
运算符 | 作用 | 示例 |
---|---|---|
& | 按位与 | SELECT A & B |
丨 | 按位与 | SELECT A 丨 B |
^ | 按位异或 | SELECT A ^ B |
~ | 按位取反 | SELECT A / B 或 SELECT ~ A |
>> | 按位右移 | SELECT A / B 或 SELECT A >>2 |
按位左移 | SELECT A / B 或 SELECT A |