萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql運算符學習筆記(算數、比較、邏輯、位運)

mysql運算符學習筆記(算數、比較、邏輯、位運)

mysql運算符中包括了算數運算符、比較運算符、邏輯運算符、位運運算符四種常見的運算符了,下面我們一起來看幾個例子,希望對各位有幫助。

算數運算符

MySQL支持大多數通用的、允許我們執行計算的的算數運算符。

"+(加法)、-(減法)、*(乘法)、/(除法,返回商)、%(除法,返回余數)",如下例:

select 1+2;//加法運算,結果為3
select 2-1;//減法運算,結果為1
select 3*2;//乘法運算,結果為6
select 6/2;//除法運算,結果為3
select 25%7;//除法運算,結果為4

select 5/0;//除法運算,結果為null,MySQL除法的除數為0是不允許的
請注意,所有涉及整數的數學運算都是用64位的精度進行計算。

用字符串表示的數字在任何可能便於計算的地方都被自動的轉換為字符串。遵循兩個轉換原則:

1:如果第一位是數字的字符串被用於算數運算中,那麼它被轉換為這個數字的值

2:如果一個包含字符和數字混合的字符串不能被正確的轉換為數字,將被轉換成0

select '100'+'004';//結果為104
select '90AA'+'0';//結果為90
select '10x'*'qwe';//結果0

計算89除以44的值,計算65加34再乘以5的值

比較運算符

比較運算符,允許我們對表達式的左邊和右邊進行比較,一個比較運算的結果總是1(真),0(假)或為null(不確定)。

select 6=6,3.4=4.5,'a'='b';//判斷兩邊是否相等
select 7<>7,7<>8,'a'<>'b';//判斷兩邊是否不相等
select 100>100,10<100;//判斷左邊是否大於右邊,左邊是否小於右邊
select 10>=100,10<=1;//判斷左邊是否大於等於右邊,左邊是否小於等於右邊
select 10 between 0 and 100;//檢驗一個值是否存在於一個指定的范圍內
select 10 not between 11 and 100;//檢驗一個值是否不存在於一個指定的范圍內
select 7 in (1,2,3,4,5,6,7,8,9);//檢驗一個值是否包含在一個指定的值集合中
select 7 not in (1,2,3,4,5,6,7,8,9);//檢驗一個值是否不包含在一個指定的值集合中

默認情況下,比較是不區分大小寫的。我們可以用binary關鍵字來執行區分大小寫的運算

select binary 'ross' in ('Chandler','Joey','Ross');

邏輯運算符

邏輯運算符可以測試1個或者多個表達式(或表達式集合)的邏輯有效性。含有這些運算符的運算結果總是1(真),0(假)或null(不能確定)

邏輯運算符中最簡單的運算符是not運算符,它對跟在它後面的邏輯測試判斷取反,把真變為假,把假變為真

select not 1,not 0,not (2=2),not (100>20);//結果為0,1,0,1

and 運算符可以測試兩個或更多的值(或表達式求值)的有效性,如果它的所有成分為真並且不是null,它返回真值,否則返回假值

select (2=2) and (900<100),('a'='a') and ('c'<'d');//結果為0,1

or 運算符,如果包含的值或者表達式值為真並且不是null,它返回真值,否則返回假值。

select (2=2) or (900<100),('a'='a') or ('c'<'d');//結果為1,1

MySQL4.x和更高版本中還包括了一個附加的xor運算符,如果它的參數中的一個(不是兩個)為真,它返回真值。

select (1=1) xor (2=4),(1<2) xor (9<10);//返回結果為1,0

位運算符

MySQL包含了6個專門用於位操作的運算符

"|"運算符用於執行一個位or操作,而&用於執行一個位and操作。

select 16|32,9|4;//結果為48,13
select 30 & 10,8 & 16;//結果10,0

還可以分別使用<<和>>運算符向左和向右移動位。

select 1<<7,64>>1;//結果為128,32

^運算符執行位xor操作

select 1^0,0^1,17^9,143^66;//結果為1,1,24,205

~運算符執行位取反操作,並返回64位整型結果

select ~18446744073709551614,~1;//結果為1,18446744073709551614

copyright © 萬盛學電腦網 all rights reserved