MySQL學習筆記9(運算子)

2021-07-11 01:01:37 字數 3885 閱讀 8568

運算子是用來連線表示式中各個運算元的符號,其作用是用來指明對運算元所進行的運算。mysql運算子包括四類,分別是算術運算子、比較運算子、邏輯運算子和位運算子。

算術運算子:包括加、減、乘、除、求餘這集中算術運算子。

比較運算子:包括大於、小於、等於、不等於、為空等比較運算子。主要用於數值的比較、字串的匹配等方面,尤其值得注意的是like、in、between and、is null等都是比較運算子,還有用於使用正規表示式的regexp也是比較運算子。

邏輯運算子:包括與、或、非、異或等邏輯運算。

位運算子:包括按位與、按位或、按位取反、按位異或、按位左移和按位右移等位運算。

select a ,a+5+2, a-5-2, a*5*2 from t1;
執行結果:

aa+5+2

a-5-2

a*5*2

2431

17240

select a ,a/3, a div 3, a

%3,mod(a,3) from t1;

執行結果:

aa/3

a div 3

a%3mod(a,3)

248.000080

0

select

5/0, 5

div0,5%0 ,mod(5,0);

執行結果:

5/05 div 0

5%0mod(5,0)

null

null

null

null

空值(null)不能使用「=」來判斷

select a ,a=24,a=20

from t1;

select

'b'='b','b'='c',null=null;

這兩個符號也不能用來判斷空值(null)

select a,a<>23,a!=23,a!=24,a!=null

from t1;

select

'b'<>'b','b'!='c';

「<=>」的作用與「=」是一樣的,這個符號可以用來判斷空值(null)。

這些運算子都不能用來判斷空值(null)

判斷運算元是否為空值(null),is not null剛好和is null相反。

select a ,a is

null,a is

notnull

from t1;

執行結果:

aa is null

a is not null240

1

select a, a between 24

and26

from t1;

執行結果:

aa between 24 and 26241

「in」用來判斷運算元是否落在某個集合中。

select s,s like

'beijing',s like

'___jing',s like

'b%',s like

's%'

from t2;

執行結果:

ss like 『beijing』

s like 『___jing』

s like 『b%』

s like 『s%』

beijing11

10邏輯運算子用來判斷表示式的真假。邏輯運算子的返回結果只有1和0。邏輯運算子又稱為布林運算子。mysql中支援四種邏輯運算子。這四種邏輯運算子分別是與、或、非和異或。

「&&」或者and表示與運算。

select -1&&2&&3, 0&&3, 0&&null, 3&&null;
-1&&2&&3

0&&3

0&&null

3&&null10

0null

「||」或則會or表示或運算。

select -1||1||null||0, 3||null,0||null,null||null,0||0;
-1||1||null||0

3||null

0||null

null||null

0||011

null

null

0「!」或者not表示非運算。

select

!1,!

0.3,!-3,!

null,!

0;

!1

!0.3

!-3!null!00

00null

1xor表示異或運算。只要其中任何乙個運算元為null時,結果返回null;如果都是非0的數字或者都是0時,結果返回0;如果有乙個是非0,另乙個是0時,結果返回1。

select

null

xor1, null

xor0,3

xor1, 1

xor0,0

xor0,3

xor2

xor0

xor1;

null xor 1

null xor 0

3 xor 1

1 xor 0

0 xor 0

3 xor 2 xor 0 xor 1

null

null01

01位運算子是在二進位制數上進行計算的運算子。位運算會先將運算元變成二進位制數,然後進行位運算。然後再將計算結果從二進位制數變回十進位制數。mysql支援六種位運算子,分別是按位與、按位或、按位取反、按位異或、按位左移和按位右移。

符號名稱

&按位與

|按位或

~按位取反

^按位異或

<<

按位左移

>>

按位右移

「&」表示按位與,進行該運算時,資料庫系統會先將十進位制的數轉換為二進位制的數,然後對應運算元的每個二進位制位上進行與運算。運算完成後再將二進位制變回十進位制數。

select

5&6,5&6&7;

執行結果:

5&65&6&744

「|」表示按位或,將運算元化為二進位制後。每位都進行或運算。

select

5|6,5|6|7;

執行結果:56

5677

7

select ~1;
執行結果:

~118446744073709551614

「<<」表示按位左移。「m<

select

5<<2,5>>2;

執行結果:

5<<2

5>>2201

由於在實際應用中可能需要同時使用多個運算子。這就必須考慮運算子的運算順序。mysql的表示式都是從左到右開始運算,那個運算子的優先順序高,哪個運算子先進行計算。

優先順序運算子

1(最高)!2

-(負號),~(按位取反)

3^(按位異或)

4*,/(div),%(mod)

5+,-

6>>,<<7&

8|9=(比較運算),<=>,<,<=,>,>=,!=,<>,in,is null,like,regexp

10between and,case,when,then,else

11not

12&&,and

13xor

14||,or

15(最低)

=(賦值運算),:=

我們可以看出,不同運算子的優先順序是不同的。在無法確定優先順序的情況下,可以使用圓括號()來改變優先順序,並且這樣會使計算過程更加清晰。

MySQL學習筆記(5) 運算子

本文更新於2020 06 14,使用mysql 5.7,作業系統為deepin 15.4。目錄運算子 語法說明 a b加法 a b減法 a b乘法 a b 除法。類似div,但div會對結果取整,的結果可為小數 a b 取餘。類似mod 運算子語法說明 a b 等於 或 a b 不等於 a b nu...

js 學習之路9 運算子

1.算數運算子 運算子描述 例子結果 加 x y 2 x 7 減x y 2 x 3 乘x y 2 x 10 除 x y 2 x 2.5 求餘數 保留整數 x y 2 x 1 累加x y x 6 遞減x y x 42.賦值運算子 運算子例子 等價於結果 x y x 5 x y x x y x 15 x...

MySQL筆記七 運算子

可以再select語句中使用算術運算子,包括加 減 乘 除 取餘 比較運算子,包括等於 大於 小於 不等於和為空等比較運算子 邏輯運算子,包括與 或 非和異或等運算子 位運算子,包括按位與 按位或 按位取反 按位異或 按位左移和按位右移等位運算。在算數運算中,如果第二個引數是0,計算結果將是null...