Mysql_常见运算符介绍

常见的运算符介绍

  • 算数运算符
  • 比较运算符
  • 逻辑运算符
  • 位操作运算符

算数运算符

运算符作用
+加法运算
-减法运算
*乘法运算
/除法运算,返回商
%求与运算,返回余数

比较运算符

运算符作用
=等于
<=>安全的等于
<>、!=不等于
<=小于等于
>=大于等于
>大于
is null判断一个值是否为空
is not null判断一个值是否不为空
least在有两个或者多个数据时,返回最小的那一个
greatest当有两个或多个参数时,返回最大的那一个
between and判断一个值是否落在两个值之间
isnull与 is null作用相同
in判断一个值是in列表中的任意一个值
not in判断一个值不是in列表中的一个值
like通配符匹配
regexp正则表达式匹配
  • <=> 安全等于和=操作执行相同的操作,不过<=> 可以判断null值,在两个操作数均为null是,返回1,而=返回null
  • <> 不等于,null<>null,则返回null
  • < =小于等于 ,null<=null ,则返回null
  • <小于,null<null,则返回null
  • '>='大于等于,null>=null,则返回null
  • '>'大于,null>null,则返回null
  • is null(值),值 is not null
  • 1 between 0 and,10 其中这个范围包括各自的值
  • least ,select least(2,0),则返回0
  • greatest ,greatest(2,0),则返回2,greatext(0,null),不知道null值,返回null
  • in not in:select 2 in(1,3,5,‘this’),‘this‘ in(1,3,5,‘this’);则返回值分别是,0,1;
    select 2 not in(1,3,5,‘this’),‘this‘ not in(1,3,5,‘this’);则返回1 ,0。
    select null in (1,3,5,‘this’),10 in(1,3,null,‘this’);
  • like 运算符用来匹配字符串,语法格式为:expr like 匹配条件, 如果expr满足匹配条件,则返回1,如果不满足则返回0.若expr或者匹配条件中任何一个为null的话,则结果为null
  • like在进行匹配时,可以使用下面两种通配符
    |%| 匹配任何数目的字符 |
    |–|--|
    |_ |只能匹配一个字符 |
    eg:select ‘stud’ like ‘stud’, ‘stud’ like ‘stu_’, ‘stud’ like ‘%d’ ,‘stud’ like ‘t_ _ _ _’ , ‘s’ like null;
    返回值分别为:1,1,1,0,null
stu_表示匹配stu开头的长度为4个字符的字符串
%d表示匹配以字母d结尾的字符串
t_ _ _表示匹配以t开头的长度为4个字符的字符串
  • regexp运算符用来匹配字符串,语法格式为:expr regexp 匹配条件,如果expr满足匹配条件,返回1,如果不满足,则返回0,若expr或者匹配条件中任意一个为null,则返回结果都为null。
  • regexp运算符在进行匹配时,常用的有下面几种通配符
^匹配以该字符后面的字符开头的字符串
$匹配以该字符后面的字符结尾的字符串
[…]匹配在方括号里的任何字符串,使用‘-’,例如:[a-z] [ 0-9] 表示匹配任意字符串和数字,例如:[ab] 表示匹配任何包含字母a或者b的字符串
*匹配零个或者多个在它前面的字符串
.例如 .sky 就是匹配以sky结尾的长度为4的字符串

逻辑运算符

运算符作用
not 或者 !逻辑非
and 或者&&逻辑与
or 或逻辑或
xor逻辑异或
  • not 或者 !:逻辑非运算符not或者!表示当操作数为0时,所得值为1,反之得0,当操作数为null时,则返回值为null;
    例如:select not 10 ,not(1-1),not(-5),not null,not 1+1;
    结果为: 0,1,0,null,0
    ==例如:select ! 10,!(1-1),!-5,!null,!1+1;==这里!1+1相当于(!1)+1
    结果为:0,1,0,null,0

  • and 或者 &&:逻辑与运算符and或者&&表示当所有操作数均为非零值,并且不为null,计算所得结果为1,当一个或者多个操作数为0时操作结果为0,其余结果均返回null。
    == 例如:select 1 and -1,1 and 0,1 and null,0 and null;==
    结果为:1,0,null,0
    例如:select 1 && -1,1 && 0, 1 && null,0 && null;
    结果为:1,0,null,0;

  • or或者逻辑运算符or或者表示当两个操作数均为非null值,且任意一个操作数为非零值时,结果为1,否则结果0,当一个操作数为null,另一个操作数为非0值时,结果为1,否则结果为null;当两个操作数均为null时,所得结果为null。
    例如:select 1 or -1 or 0,1 or 2,1 or null,0 or null,null or null;
    结果为:1,1,1,null,null

  • xor逻辑异或运算符:当任意一个操作数为null时,返回值为null,对于非null的操作数,如果两个数都是非0值或者都是0值,则结果都为0,若果一个为0值,另一个为非0值,则返回1。
    例如:select 1 xor 1,0 xor 0,1 xor 0,1 xor null,1 xor 1 xor 1;
    结果为:0,0,1,null

位运算符

用来对二进制字节中的位进行测试,位移或者测试处理,mysql提供的位运算符有按位或,按位与(&),按位异或(^),按位左移(<<),按位右移(>>),按位取反(~)

位或
&位与
^位异或
<<位左移
>>位右移
~位取反,反转所有比特
  • 位或运算符的实质是:将参与运算的两个数据,按照对应的二进制数进行逻辑或运算,对应的二进制位有一个或者两个为1则该位的运算结果为1,否则为0.
  • 位与运算符:对应的二进制位都为1,则该位的运算结果为1,否则为0
  • 位异或运算符:对应位的二进制数不同时,对应的结果才为1,如果两个对应位数都为0或者1,则对应位的结果为0.
  • 位左移运算符:使指定的二进制值的所有位都左移指定的位数。左移指定的位数之后,左边高位的将会被移除并丢弃,右边低位空出的位置用0补齐。语法格式为:expr<<n,这里的n指的是expr要移动的位数。
  • 位右移运算符和左移相反
  • 位取反运算符,将二进制中0转换成1,1转换成0.

运算符的优先级

优先级运算符
最低= (赋值运算符)
或者,or
xor
&&,and
not
between case when then else
=(比较运算符),<=> ,>=,>,<=,<,<>,!=,is,like ,regexp,in
&
<<,>>
-,+
*
^
-,~
最高
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值