一、算术运算符
- +、-、*、/、、%
- /:数学上的除,会有小数点
- /、%:除数、取余数为0,返回NULL
二、比较运算符
=:判断是否相等,不是赋值运算符
- 字符串和数字也可以比较('2'=2,返回1)
- 若有一个参数为NULL,返回NULL
<=>:判断是否相等,安全的
- 与=类似,比=多一个功能,可以判断NULL是相等
- NULL<=>NULL。返回1
<>,!=:不等于,两种形式
如果有NULL,返回NULL
<=、>=:小于等于,大于等于
如果有NULL,返回NULL
>、<:大于、小于
- 如果有NULL,返回NULL
is null()、is not null:判断是否为NULL
- is null(null); //返回1
- 10 is not null; //返回1
between and:判断是否在区域内
- 4 between 3 and 5; //返回1
- 'b' between 'a' and 'z'; //返回1
least():返回最小值
- 如果有NULL,返回NULL
- 参数可以为2个及以上
- least(2,0); //返回0
- least(20,3,100.5); //返回3
- least('a','b','c'); //返回a
greatest():返回最大值
- 如果有NULL,返回NULL
- 参数可以为2个及以上
- least(2,0); //返回2
- least(20,3,100.5); //返回100.5
- least('a','b','c'); //返回c
in、not in:判断是否在列表中
- 有NULL返回NULL
- 2 in (1,3,5,'a'); //返回0
- 1 in (1,3,5,'a'); //返回1
- 2 not in (1,3,5,'a'); //返回1
- 1 not in (1,3,5,'a'); //返回0
like:匹配字符串
- %:表示任何数目的字符,包括零字符
- _:只能匹配一个字符
- 有NULL返回NULL
- 'stud' like 'stud'; //返回1
- 'stud' like 'stu_'; //返回1
- 'stud' like '%d'; //返回1
- 'stud' like 't__'; //返回0
- 'stud' like 's___'; //返回1(有3个_)
regexp:匹配字符串
- ^:匹配以^字符后面的字符开头的字符串
- $:匹配以$字符前面的字符结尾的字符串
- . :匹配任何一个单字符
- [...]:匹配在[]内的任何字符
- * :匹配任何0个或多个在它前面的字符。x*(匹配任何数量的*字符),[0-9]*(匹配任何数量的数字),*(匹配任何字符)
- 'ssky' regexp '^s'; //返回1
- 'ssky' regexp 'y$'; //返回1
- 'ssky' regexp '.sky'; //返回1
- 'ssky' regexp '[ab]'; //返回0
三、逻辑运算符
not、!:逻辑非
- not 10; //返回
- not (1-1); //返回1
- not -5; //返回0
- not 1+1; //返回0
- !10; //返回1
- !(1-1); //返回1
- !NULL; //返回NULL
and、&&:逻辑与
- 1 and -1; //返回1
- 0 and 1; //返回0
- 0 and NULL; //返回0
- 1 && -1; //返回1
- 0 && 1; //返回0
- 1 && NULL; //返回NULL
or、|| :逻辑或
- 1 or -1; //返回1
- 0 || 0: //返回0
- NULL or NULL; //返回NULL
- 0 or NULL; //返回NULL
- 1 || NULL; //返回NULL
- 0 || 1; //返回1
xor:逻辑异或
- 两个操作数相同为0
- 两个操作数不同为1
- 有NULL就返回NULL
- 1 xor 1; //返回0
- 0 xor 0; //返回0
- 1 xor 0; //返回1
四、位运算符
| :位或
&:位与
^:位异或
<<:位左移
>>:位右移
~:位取反