一、算数运算符:
算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加 (+)、减(-)、乘(*)、除(/)和取模(
%
)运算。
1.+ - :
SELECT 100, 100+50, 100-50, 100+0*2, 100+30.5, 100-30.50, 100+'a', 100+NULL
FROM DUAL;
在SQL中,+没有连接的作用,就表示加法运算,此时,字符串会进行隐式转换,转换为数值。此时的‘a’看做0处理,null参与运算后的结果为null。
一个整数类型的值对整数进行加法和减法操作,结果还是一个整数; 一个整数类型的值对浮点数进行加法和减法操作,结果是一个浮点数;
2. * /(DIV) :
SELECT 100*1, 100*1.0, 100/1.0, 100/2, 100 DIV 0, 100*'a', 100/NULL
FROM DUAL;
一个数乘以整数
1
和除以整数
1
后仍得原数;
一个数乘以浮点数
1
和除以浮点数
1
后变成浮点数,数值与原数相等;
一个数除以整数后,不管是否能除尽,结果都为一个浮点数;
一个数除以另一个数,除不尽时,结果为一个浮点数,并保留到小数点后
4
位;
乘法和除法的优先级相同,进行先乘后除操作与先除后乘操作,得出的结果相同。
在数学运算中,
0
不能用作除数,在
MySQL
中,一个数除以
0
为
NULL
。
3. 求模(求余)%(MOD):
SELECT 15 % 3, 15 MOD 5, 15 % 'a', 15 MOD NULL
FROM DUAL;
二、比较运算符:
比较运算符用来对表达式左边的操作数和右边的操作数进行比较,比较的结果为真则返回
1
,比较的结果为假则返回0
,其他情况则返回
NULL
。
1. 等号运算符:
判断等号两边的值、字符串或表达式是否相等,如果相等则返回
1
,不相等则返回0。
SELECT 1=1, 'a'='a', 1='a', 0='abc', (1+2)=(2+1), ''=NULL, NULL=NULL
FROM DUAL;
如果等号两边的值、字符串或表达式都为字符串,则
MySQL
会按照字符串进行比较,其比较的
是每个字符串中字符的
ANSI
编码是否相等。
如果等号两边的值都是整数,则
MySQL
会按照整数来比较两个值的大小。
如果等号两边的值一个是整数,另一个是字符串,则
MySQL
会将字符串转化为数字进行比较。
如果等号两边的值、字符串或表达式中有一个为
NULL
,则比较结果为
NULL
。
2. 安全等与运算符:
安全等于运算符(<=>)与等于运算符(=)的作用是相似的,唯一的区别是‘<=>’可以用来对NULL进行判断。在两个操作数均为NULL时,其返回值为1,而不为NULL;当一个操作数为NULL时,其返回值为0,而不为NULL。
SELECT 1<=>1,&#