MySQL运算符

MySQL运算符

运算是用来连接表达式中各个操作数据的符号,其作用是指明对操作数所进行的运算。MySQL数据库支持运算符的使用,通过运算符可以更加灵活地操作数据表中的数据。MySQL主要支持算数运算符、比较运算符、逻辑运算符、位运算4中类型。

1.算数运算符

MySQL数据库支持的算数运算符包括加、减、除、和取余运算。它们是最常用的、最简单的一类运算符。

运算符作用
+加法,返回相加的结果
-减法,返回相减后的值
*乘法,返回相乘后的值
/,DIV取整,返回相除后的值
%,MOD取余,返回相除后的余数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0YJ73ehb-1581129150736)(C:\Users\sml\AppData\Roaming\Typora\typora-user-images\1581056833325.png)]

2.比较运算符

比较运算符有很多种,MySQL数据库允许用户对表达式的左边操作数和右边操作数进行比较,比较结果为真,返回1;为假返回0;不确定返回NULL。

运算符作用运算符作用
=等于BETWEEN min AND max在min和max之间
<>或!=不等于IN(value1,value2,…)存在于集合(value1,value2,…)中
<=>NULL安全的等于IS NULL为NULL
<小于IS NOT NULL不为NULL
<=小于等于LIKE通配符匹配
>大于REGEXP或RLIKE正则表达式匹配
>=大于等于

运算符可以用于比较数字,字符串和表达式。数字作为浮点数比较,而字符串以不区分大小写的方式比较。

1)=运算符,比较运算符两侧是否相等。相等返回1,不相等返回0,涉及NULL的比较都会返回NULL。

2)< >运算符和=相反,如果两侧操作数不等,则值为1,否则为0。涉及NULL的比较都会返回NULL。

3)< = >和=类似,在两侧操作数相等时值为1,不同之处在于即使操作的值为NULL也可以正确比较。

4)<运算符,当左侧操作数小于右侧操作数时,其返回值为1,否则其值为0。

5)<=运算符,当左侧操作数小于等于右侧操作数时,其返回值为1,否则其值为0。

6)>运算符,当左侧操作数大于右侧操作数时,其返回值为1,否则其值为0。

7) >=运算符,当左侧操作数大于等于右侧操作数时,其返回值为1,否则返回值为0。

8)BETWWEENmin AND max运算符为数据指定了一个范围在min到max之间,当操作数在这个范围内,返回1,否则返回0。如果操作数类型不一致,会自动转换后比较。

9)IN运算符同样是为数据指定一个范围,其作用更接近于枚举。

10) IS NULL 运算符的使用格式是”a IS NULL",当 a的值是NULL时,返回1,否则返回0.

11)IS NOT NULL运算符的使用格式是“ a IS NOT NULL",当a的值不是NULL时,返回1,否则返回0。

12)LIKE 运算符的使用格式是“a LIKE %ab2%”,当a中含有字符串“ab2”时,则返回1,否则返回0.

13)REGEXP运算符的使用格式时“str REGEXP str_pat”,当str字符串中含有 str_pat相匹配的字符串时,则返回1,否则返回0.

3.逻辑运算符

逻辑运算符也称为布尔运算符,用来判断表达式的真假。MySQL数据库支持四种逻辑运算符。

运算符作用运算符作用
NOT或!逻辑非OR或||逻辑或
AND或&逻辑与XOR逻辑异或

1)NOT或!运算符

表示逻辑非,返回的结果和操作数的结果正好相反,即当操作数或者表达式的值为0时,返回1,否则返回0.当值为NULL时,返回NULL。

2)AND或&运算符

表示逻辑与,当所有的操作数为非0时,结果返回1,当有一个或多个操作数为0时,返回0。但是需要注意的是,当操作数中含有NULL时,用and与&两个操作符的结果还是有一定差异的。

3)OR或||运算符

表示逻辑或,当操作数中含有非零值,返回1,否则返回0.当有一个操作数为NULL时,如果另一个非零值,则结果为1,否则为NULL。当操作数都为NULL时,结果为NULL。

4)XOR运算符

表示逻辑异或,当两个操作数的逻辑值相等时,返回0,不等返回1。当含有NULL时,返回NULL。

4.位运算符

位运算符是将给定的操作数转换为二进制,对各个操作数的每一位都进行指定的逻辑运算,得到的二进制结果转换为十进制数后就是位运算的结果。

运算符作用运算符作用
&位与(位AND)~位取反
|位或(位OR)>>位右移
^位异或(位XOR)<<位左移

1)&位与(位AND)

对多个操作数的二进制位做逻辑与操作,例如,3&6,3的二进制是11,6的二进制是110,而11&110的结果是010,十进制是2。

2)|位或(位OR)

对多个操作数的二进制进位进行逻辑或操作,例如,3|6,3的二进制是11,6的二进制是110,11|110的结果是111,十进制是7。

3)^位异或(位XOR)

对多个操作数的二进制位进行逻辑异或操作,例如,36,3的二进制是11,6的二进制是110,11110的结果101,十进制是5。

4)~位取反

对操作数的二进制位进行逻辑NOT操作,举一个经典的取反例子。对1做位取反,由于MySQL中常量数字默认是用8字节来表示的,8字节就是64位,常量1的二进制表示前面有63个零,最后一个是1,位取反之后就变成了前面有63个1,最后一个是0,转换位十进制就是18446744073709551614。

5)>>位右移

对操作数的二进制位做向右移动指定的位数,例如,6>>2,就是对6的二进制110右移2位,左边补零,结果就是1。

6)<<位左移

对操作数的二进制位做向左移动指定的位数,例如,6<<2,就是对6的二进制110左移2位,右边补零,结果就是11000,转换为十进制就是24.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值