1. 算術運算符
MySQL支持的算術運算符
運算符
作用
+
加法
–
減法
*
乘法
/ , DIV
除法,返回商
% , MOD
除法,返回餘數
SELECT 0.1 + 0.333 , 0.1 - 0.333 , 0.1 * 0.333 , 1 / 2 , 1 % 2 ;
" + "運算符用於獲得一個或多個值的和.
" - "運算符用於從一個值中減去另一個值.
" * "運算符使數字相乘,得到兩個或多個值的乘積.
" / "運算符用一個值除以另一個值得到商.
" % "運算符用一個值除以另外一個值得到餘數.
在除法運算和模運算中,如果除數爲0,將是非法除數,返回結果爲NULL
" / " 會返回計算計算結果, " DIV " 返回的則是整數商;
a%b和MOD(a,b)的表達結果一樣.
SELECT 8 / 5 , 8 DIV 5 , 1 % 2 , MOD ( 1 , 2 ) ;
2.比較運算符
運算符
作用
=
等於
<>或!=
不等於
<=>
NULL安全的等於(NULL-safe)
<
小於
<=
小於等於
>
大於
>=
大於等於
BETWEEN
存在指定範圍
IN
存在指定集合
IS NULL
爲NULL
IS NOT NULL
不爲NULL
LIKE
通配符匹配
REGEXP 或 RLIKE
正則表達式匹配
"="運算符 ,用於比較運算符兩側的操作數是否相等,如果兩側操作數相等,則返回值爲1,否則爲0.注意NULL不能用於"="比較.
SELECT 1 = 0 , 1 = 1 , NULL = NULL ;
"<>"運算符 ,和"=“相反,如果兩側操作數不相等,則值爲1,否則爲0,NULL不能用於”<>"比較;
SELECT 1 <> 0 , 1 <> 1 , NULL <> NULL ;
"<=>"運算符 ,和"="類似,在操作數相等時值爲1,不同之處在於即使操作的值爲NULL也可以正確的比較.
SELECT 1 <=> 0 , 1 <=> 1 , NULL <=> NULL ;
"<"運算符 ,當左側操作數小於右側操作數時,返回值爲1,否則爲0.
SELECT 'c' < 'd' , 'c' < 'a' , 1 < 1 , 1 < 2 ;
"<="運算符 ,當左側操作數小於等於右側操作數時,返回值爲1,否則爲0.
SELECT 'c' <= 'd' , 'c' <= 'a' , 1 <= 1 , 1 <= 2 ;
">"運算符 ,當左側操作數大於右側操作數時,返回值爲1,否則爲0.
SELECT 'c' > 'd' , 'c' > 'a' , 1 > 1 , 1 > 2 ;
">="運算符 ,當左側操作數大於等於右側操作數時,返回值爲1,否則爲0.
SELECT 'c' >= 'd' , 'c' >= 'a' , 1 >= 1 , 1 >= 2 ;
"BETWEEN"運算符 的使用格式爲"a BETWEEN min AND max",當a大於等於min並且小於等於max,則返回值爲1,否則爲0;當操作數a,min,max類型相同時,此表達式等價於(a >= min AND a <= max),當操作數類型不同時,比較時會遵循類型轉換原則進行轉換後,再進行比較運算.
SELECT 10 BETWEEN 10 AND 20 , 9 BETWEEN 10 AND 20 ;
"IN"運算符 的使用格式爲"a IN(value1 , value2,…)",當a的值存在於列表中時,則整個比較表達式返回的值爲1,否則爲0.
SELECT 'a' IN ( 'a' , 'b' , 'c' ) , 1 IN ( 0 , 1 , 2 ) , 0 IN ( 1 , 2 ) ;
"IS NULL"運算符 的使用格式爲"a IS NULL",當a的值爲NULL時,則返回值1,否則返回0.
SELECT 0 IS NULL , NULL IS NULL ;
"IS NOT NULL"運算符 的使用格式爲"a IS NOT NULL",和"IS NULL"相反,當a的值爲不爲NULL時,則返回值1,否則返回0.
SELECT 0 IS NOT NULL , NULL IS NOT NULL
"LIKE"運算符 的使用格式爲"a LIKE ‘%123%’ " ,當a中含有字符串"123"時,則返回值爲1,否則爲0.
SELECT 123456 LIKE '123%' , 123456 LIKE '%123%' , 123456 LIKE '%321%' ;
"REGEXP"運算符 的使用格式爲"str REGEXP str_pat",當str字符串中含有str_pat相匹配的字符串時,則返回值爲1,否則爲0.
SELECT 'abcdef' REGEXP 'ab' , 'abcdef' REGEXP 'xy' ;
3. 邏輯運算符
運算符
作用
NOT 或 !
邏輯非
AND 或 &&
邏輯與
OR 或 ||
邏輯或
XOR
邏輯異或
**NOT 或 !**表示邏輯非,返回和操作數相反的結果:當操作數爲0(假),則返回值爲1,否則爲0.但有一個點除外,那就是NOT NULL的返回值爲NULL.
SELECT NOT 0 , NOT 1 , NOT NULL ;
**AND 或 &&**表示邏輯與運算,當所有的操作數均爲非0值,並且不爲NULL時,計算所得結果爲1;當一個或多個操作數爲0時,所得結果爲0;
SELECT 0 AND 0 , 0 AND 1 , 1 AND 1 , 1 AND NULL , 0 AND NULL , NULL AND 0 , NULL AND 1 ;
**OR 或 ||**表示邏輯或運算.當所有操作數均爲非NULL值時,如果有任意一個操作數爲非零值,則結果爲1,否則爲0,當有一個操作數爲NULL時,如果另一個操作數爲非零值,則結果爲1,否則結果爲NULL;假如兩個操作數均爲NULL,則所得結果爲NULL.
SELECT ( 1 OR 0 ) , ( 0 OR 0 ) , ( 1 OR NULL ) , ( 0 OR NULL ) , ( 1 OR 1 ) , ( NULL OR NULL ) ;
XOR 表示邏輯異或,當任意一個操作數爲NULL時,返回值爲NULL;對於非NULL的操作數,如果兩個的邏輯真假值相異,則返回結果爲1,否則返回0,
SELECT ( 1 XOR 0 ) , ( 0 XOR 0 ) , ( 1 XOR NULL ) , ( 0 XOR NULL ) , ( 1 XOR 1 ) , ( NULL XOR NULL ) ;