当前位置:首页 » 数据库存储

MySQL数据库操作5-常用运算符

2014-11-09 23:17 本站整理 浏览(4)

概述:

常用运算符主要包含有:
算术运算符,
比较运算符,
逻辑运算符,
位操作运算符
等…

1.算术运算符:

支持 + – * / 和 % ,
比如在查找数据的时候使用:
select n+1,n+2 from num;

前:

,后:


同样可以使用其他运算。
注意除法会取到小数点后四位。除0的结果是没有意义的NULL。

2。比较运算符

比较运算符返回的结果通常是0,1,或NULL,可以在查询语句中使用来查询满足条件的记录。
常用的比较运算符介绍:
=
select 1=0,2=2,'1'=1,1+2=3+0,NULL=NULL;

结果是:



因为=不用于空值判断,因此,最后一个结果是NULL,无法判断。
同样用法的有,不等于<>或!=,小于等于<=,小于<,大于等于>=,大于>,注意这些运算符也可以比较字符串,按照字符表的排列顺序进行比较。

IS NULL ,ISNULL(),或IS NOT NULL

判断一个值是否为空。
如:
select null is null,isnull(null), 10 is not null;

结果是:



BETWEEN AND

判断是否在某个范围之间,如
select 4 between 3 and 10;

结果:



注意字符串类型会按照字符表顺序进行范围比较。
如:
select 'f' between 'a' and 'g';

结果:



LEAST(值1,值2,….)

返回最小值,但是如果值中存在NULL,那么返回NULL,如:
select least(10,3.0,32),least(10,null,4);

结果是:



当比较字符串的时候也是得到比较的时候最小的串,如:
select least('abc','abd','abcd');

结果:



GREATEST

与LEAST相对,比较出的是最大值。如:
select greatest('abc','abd','abcd');

结果是:



IN,NOT IN

判断值是否在列表中,如:
select 4 in (1,4,'r','t'),'r' not in (1,4,'r','t');

结果是:



当左侧为NULL或是找不到匹配项且在列表中有NULL的情况下都是返回NULL。

LIKE

伪正则匹配,仅支持%和_这两个通配符,%表示匹配任何数目的字符,_匹配任意单个字符。
如:
select 'student' like 'st%';

结果是:



可以看出,like后面的字符串是正则表达式,前面是要进行匹配的字符串。

REGEXP

正则表达式匹配,^匹配开头,$匹配结尾, . 匹配单字符,[]匹配其中的字符(支持用-规定范围),*匹配其前面的字符任意多次(本人使用的时候有异议,因为使用*的时候可能出现问题)。
如:
select 'ssky' regexp '[ab]','ssky' regexp 's*';

结果是:



如果按照定义,s*匹配的时候不会匹配出ky,但结果就是返回真(1)。有知道的请指教。

3.逻辑运算符

NOT 或 !

当操作数为1时为0,为0时为1,就是取反操作,如:
select not(1),not 0 ,! true;

结果是:



AND 或 &&

与操作;
如:
select 1 and 1,0 and 1;

结果:



OR或||

或操作;
如:
select 1 or 1,0 || 1;

结果:



XOR

异或操作;(相同为0,相异为1)
如:
select 0 xor 0;

结果:



4.位运算符(略)。

因为位运算主要使用与二进制,场合特殊,所以我暂时就不记了,但是MySQL支持的位运算符有
| 位或
& 位与
^ 位异或
<< 位左移
>> 位右移
~位取反