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

來源:互聯網
上載者:User

算數運算子

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.