Day18 MySQL常用運算子詳解

2021-10-05 05:25:51 字數 3957 閱讀 6176

mysql資料庫中的表結構確立後,表中的資料代表的意義就已經確定。而通過 mysql 運算子進行運算,就可以獲取到表結構以外的另一種資料。

mysql支援4中運算子,分別是

1、算術運算子

執行算術運算,例如:加、減、乘、除等。

2、比較運算子

包括大於、小於、等於或者不等於,等等。主要用於數值的比較、字串的匹配等方面。例如:like、in、between and 和 is null 等都是比較運算子,還包括正規表示式的 regexp 也是比較運算子。

3、邏輯運算子

包括與、或、非和異或等邏輯運算子。其返回值為布林型,真值(1 或 true)和假值(0 或 false)。

4、位運算子

包括按位與、按位或、按位取反、按位異或、按位左移和按位右移等位運算子。位運算必須先將資料轉換為二進位制,然後在二進位制格式下進行操作,運算完成後,將二進位制的值轉換為原來的型別,返回給使用者。

算術運算子是 sql 中最基本的運算子,mysql 中的算術運算子如下表所示。

算術運算子說明+

加法運算

-減法運算

*乘法運算

/除法運算,返回商

%求餘運算,返回餘數

比較運算子的語法格式為:

《表示式1>  《表示式2>
mysql 支援的比較運算子如下表所示

比較運算子說明=

等於<

小於<=

小於等於

>

大於》=

大於等於

<=>

安全的等於,不會返回 unknown

<> 或!=

不等於is null 或 isnull

判斷乙個值是否為 null

is not null

判斷乙個值是否不為 null

least

當有兩個或多個引數時,返回最小值

greatest

當有兩個或多個引數時,返回最大值

between and

判斷乙個值是否落在兩個值之間

in判斷乙個值是in列表中的任意乙個值

not in

判斷乙個值不是in列表中的任意乙個值

like

萬用字元匹配

regexp

正規表示式匹配

下面分別介紹不同的比較運算子的使用方法。

等號「=」用來判斷數字、字串和表示式是否相等。如果相等,返回值為 1,否則返回值為 0。

資料進行比較時,有如下規則:

用於比較兩個表示式的值。當兩個表示式的值中有乙個為空值或者都為空值時,將返回 unknown。

對於運算子「<=>」,當兩個表示式彼此相等或都等於空值時,比較結果為 true;若其中乙個是空值或者都是非空值但不相等時,則為 false,不會出現 unknown 的情況。

<>」或者「!=」用於數字、字串、表示式不相等的判斷。如果不相等,返回值為 1;否則返回值為 0。這兩個運算子不能用於判斷空值(null)。

<=」用來判斷左邊的運算元是否小於或等於右邊的運算元。如果小於或等於,返回值為 1;否則返回值為 0。「<=」不能用於判斷空值。

「<」用來判斷左邊的運算元是否小於右邊的運算元。如果小於,返回值為 1;否則返回值為 0。「<」不能用於判斷空值。

「>=」用來判斷左邊的運算元是否大於或等於右邊的運算元。如果大於或等於,返回值為 1;否則返回值為 0。「>=」不能用於判斷空值。

」用來判斷左邊的運算元是否大於右邊的運算元。如果大於,返回值為 1;否則返回值為 0。「>」不能用於判斷空值。

is null 和 isnull 用於檢驗乙個值是否為 null,如果為 null,返回值為 1;否則返回值為 0。

is not null 用於檢驗乙個值是否為非 null,如果為非 null,返回值為 1;否則返回值為 0。

語法格式為:

《表示式》 between 《最小值》 and 《最大值》
《表示式》大於或等於《最小值》,且小於或等於《最大值》,則 between 的返回值為 1;否則返回值為 0。

語法格式為:

least(《值1>,《值2>,…,《值n>)
其中,值 n 表示引數列表中有 n 個值。存在兩個或多個引數的情況下,返回最小值。若任意乙個自變數為 null,則 least() 的返回值為 null。

語法格式為:

greatest (《值1>,《值2>,…,《值n>)
其中,值 n 表示引數列表中有 n 個值。存在兩個或多個引數的情況下,返回最大值。若任意乙個自變數為 null,則 greatest() 的返回值為 null。

in 運算子用來判斷運算元是否為 in 列表中的乙個值。如果是,返回值為 1;否則返回值為 0。

not in 運算子用來判斷表示式是否為 in 列表中的乙個值。如果不是,返回值為 1;否則返回值為 0。

在 sql 語言中,所有邏輯運算子求值所得的結果均為 true、false 或 null。在 mysql 中分別體現為 1(true)、0(false)和 null。

mysql 中的邏輯運算子如下表所示。

邏輯運算子

說明not 或者 !

邏輯非and 或者 &&

邏輯與or 或者 ||

邏輯或xor

邏輯異或

下面分別介紹不同的邏輯運算子的使用方法。

邏輯非運算子 not 或者 !,表示當運算元為 0 時,返回值為 1;當運算元為非零值時,返回值為 0;當運算元為 null 時,返回值為 null。

邏輯與運算子 and 或者 &&,表示當所有運算元均為非零值並且不為 null 時,返回值為 1;當乙個或多個運算元為 0 時,返回值為 0;其餘情況返回值為 null。

邏輯或運算子 or 或者 ||,表示當兩個運算元均為非 null 值且任意乙個運算元為非零值時,結果為 1,否則結果為 0;當有乙個運算元為 null 且另乙個運算元為非零值時,結果為 1,否則結果為 null;當兩個運算元均為 null 時,所得結果為 null。

邏輯異或運算子 xor。當任意乙個運算元為 null 時,返回值為 null;對於非 null 的運算元,若兩個運算元都不是 0 或者都是 0 值,則返回結果為 0;若乙個為 0,另乙個不為非 0,則返回結果為 1。

位運算子是用來對二進位制位元組中的位進行移位或者測試處理的。

位運算子說明|

按位或&

按位與^

按位異或

<<

按位左移

>>

按位右移

~按位取反,反轉所有位元

下面分別介紹不同的位運算子的使用方法。

位或運算的實質是將參與運算的兩個資料按對應的二進位制數逐位進行邏輯或運算。若對應的二進位制位有乙個或兩個為 1,則該位的運算結果為 1,否則為 0。

位與運算的實質是將參與運算的兩個資料按對應的二進位制數逐位進行邏輯與運算。若對應的二進位制位都為 1,則該位的運算結果為 1,否則為 0。

位異或運算的實質是將參與運算的兩個資料按對應的二進位制數逐位進行邏輯異或運算。對應的二進位制位不同時,對應位的結果才為 1。如果兩個對應位都為 0 或者都為 1,則對應位的結果為 0。

位左移運算子「<<」使指定的二進位制值的所有位都左移指定的位數。左移指定位數之後,左邊高位的數值將被移出並丟棄,右邊低位空出的位置用 0 補齊。

表示式《位右移運算子「>>」使指定的二進位制值的所有位都右移指定的位數。右移指定位數之後,右邊高位的數值將被移出並丟棄,左邊低位空出的位置用 0 補齊。

表示式》n

位取反運算子的實質是將參與運算的資料按對應的二進位制數逐位反轉,即 1 取反後變 0,0 取反後變為 1。

mysql 運算子轉義 mysql常用運算子

一 算數運算子 加法 減法 乘法 除法 返回餘數 二 比較運算子 等於 或 不等於 等於 這裡是安全的等於 例如 select null null 結果是1,如果是select null null 結果是null,有時候會報錯程式 between 存在於指定範圍 舉例 select 10 betwe...

MySQL 常用運算子

1.算數運算子 加 mysql select 1 2 減 mysql select 2 1 乘 mysql select 2 3 除 mysql select 5 3 商 mysql select 5 div 2 模 mysql select 5 2,mod 5,2 2.比較運算子 等於 mysql...

18 高階運算子

var min uint8.min print min 1 255,int8.max var max uint8.max print max 1 0,int8.min print max 2 254,等價於 max max swift 為以下型別提供預設的 equatable 實現 注 引用型別比較...