標籤:style blog http color 使用 sp strong 資料 div
概述:
常用運算子主要包含有:
算術運算子,
比較子,
邏輯運算子,
位操作運算子
等…
1.算術運算子:
支援 + – * / 和 % ,
比如在尋找資料的時候使用:
select n+1,n+2 from num;
前:,後:
同樣可以使用其他運算。
注意除法會取到小數點後四位。除0的結果是沒有意義的NULL。
2。比較子
比較子返回的結果通常是9,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後面的字串是Regex,前面是要進行匹配的字串。
REGEXP
Regex匹配,^匹配開頭,$匹配結尾, . 匹配單字元,[]匹配其中的字元(支援用-規定範圍),*匹配其前面的字元任意多次(本人使用的時候有異議,因為使用*的時候可能出現問題)。
如:
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支援的位元運算符有
| 位或
& 位與
^ 位異或
<< 位左移
>> 位右移
~位取反
MySQL資料庫操作5-常用運算子