日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL常用运算符详解

發(fā)布時間:2025/3/20 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL常用运算符详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

MySQL 數(shù)據(jù)庫中的表結(jié)構(gòu)確立后,表中的數(shù)據(jù)代表的意義就已經(jīng)確定。而通過 MySQL 運算符進行運算,就可以獲取到表結(jié)構(gòu)以外的另一種數(shù)據(jù)。

?

例如,學(xué)生表中存在一個 birth 字段,這個字段表示學(xué)生的出生年份。而運用 MySQL 的算術(shù)運算符用當(dāng)前的年份減學(xué)生出生的年份,那么得到的就是這個學(xué)生的實際年齡數(shù)據(jù)。

MySQL 支持 4 種運算符,分別是:

1) 算術(shù)運算符

執(zhí)行算術(shù)運算,例如:加、減、乘、除等。

2) 比較運算符

包括大于、小于、等于或者不等于,等等。主要用于數(shù)值的比較、字符串的匹配等方面。例如:LIKE、IN、BETWEEN AND 和 IS NULL 等都是比較運算符,還包括正則表達式的 REGEXP 也是比較運算符。

3) 邏輯運算符

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

4) 位運算符

包括按位與、按位或、按位取反、按位異或、按位左移和按位右移等位運算符。位運算必須先將數(shù)據(jù)轉(zhuǎn)換為二進制,然后在二進制格式下進行操作,運算完成后,將二進制的值轉(zhuǎn)換為原來的類型,返回給用戶。

算術(shù)運算符

算術(shù)運算符是 SQL 中最基本的運算符,MySQL 中的算術(shù)運算符如下表所示。

算術(shù)運算符說明
+加法運算
減法運算
*乘法運算
/除法運算,返回商
%求余運算,返回余數(shù)

比較運算符

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

<表達式1> {= | < | <= | > | >= | <=> | < > | !=} <表達式2>

MySQL 支持的比較運算符如下表所示。

比較運算符說明
=等于
<小于
<=小于等于
>大于
>=大于等于
<=>安全的等于,不會返回 UNKNOWN
<>?或!=不等于
IS NULL?或?ISNULL判斷一個值是否為 NULL
IS NOT NULL判斷一個值是否不為 NULL
LEAST當(dāng)有兩個或多個參數(shù)時,返回最小值
GREATEST當(dāng)有兩個或多個參數(shù)時,返回最大值
BETWEEN AND判斷一個值是否落在兩個值之間
IN判斷一個值是IN列表中的任意一個值
NOT IN判斷一個值不是IN列表中的任意一個值
LIKE通配符匹配
REGEXP正則表達式匹配

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

1) 等于運算符“=”

等號“=”用來判斷數(shù)字、字符串和表達式是否相等。如果相等,返回值為 1,否則返回值為 0。

數(shù)據(jù)進行比較時,有如下規(guī)則:

  • 若有一個或兩個參數(shù)為 NULL,則比較運算的結(jié)果為 NULL。
  • 若同一個比較運算中的兩個參數(shù)都是字符串,則按照字符串進行比較。
  • 若兩個參數(shù)均為正數(shù),則按照整數(shù)進行比較。
  • 若一個字符串和數(shù)字進行相等判斷,則 MySQL 可以自動將字符串轉(zhuǎn)換成數(shù)字。

2) 安全等于運算符“<=>”

用于比較兩個表達式的值。當(dāng)兩個表達式的值中有一個為空值或者都為空值時,將返回 UNKNOWN。

對于運算符“<=>”,當(dāng)兩個表達式彼此相等或都等于空值時,比較結(jié)果為 TRUE;若其中一個是空值或者都是非空值但不相等時,則為 FALSE,不會出現(xiàn) UNKNOWN 的情況。

3) 不等于運算符“<>”或者“!=”

“<>”或者“!=”用于數(shù)字、字符串、表達式不相等的判斷。如果不相等,返回值為 1;否則返回值為 0。這兩個運算符不能用于判斷空值(NULL)。

4) 小于或等于運算符“<=”

“<=”用來判斷左邊的操作數(shù)是否小于或等于右邊的操作數(shù)。如果小于或等于,返回值為 1;否則返回值為 0。“<=”不能用于判斷空值。

5) 小于運算符“<”

“<”用來判斷左邊的操作數(shù)是否小于右邊的操作數(shù)。如果小于,返回值為 1;否則返回值為 0。“<”不能用于判斷空值。

6) 大于或等于運算符“>=”

“>=”用來判斷左邊的操作數(shù)是否大于或等于右邊的操作數(shù)。如果大于或等于,返回值為 1;否則返回值為 0。“>=”不能用于判斷空值。

7) 大于運算符“>”

“>”用來判斷左邊的操作數(shù)是否大于右邊的操作數(shù)。如果大于,返回值為 1;否則返回值為 0。“>”不能用于判斷空值。

8) IS NULL(或者 ISNULL)

IS NULL 和 ISNULL 用于檢驗一個值是否為 NULL,如果為 NULL,返回值為 1;否則返回值為 0。

9) IS NOT NULL

IS NOT NULL 用于檢驗一個值是否為非 NULL,如果為非 NULL,返回值為 1;否則返回值為 0。

10) BETWWEN AND

語法格式為:

<表達式> BETWEEN <最小值> AND <最大值>

若<表達式>大于或等于<最小值>,且小于或等于<最大值>,則 BETWEEN 的返回值為 1;否則返回值為 0。

11) LEAST

語法格式為:

LEAST(<值1>,<值2>,…,<值n>)

其中,值 n 表示參數(shù)列表中有 n 個值。存在兩個或多個參數(shù)的情況下,返回最小值。若任意一個自變量為 NULL,則 LEAST() 的返回值為 NULL。

12) GREATEST

語法格式為:

GREATEST (<值1>,<值2>,…,<值n>)

其中,值 n 表示參數(shù)列表中有 n 個值。存在兩個或多個參數(shù)的情況下,返回最大值。若任意一個自變量為 NULL,則 GREATEST() 的返回值為 NULL。

13) IN

IN 運算符用來判斷操作數(shù)是否為 IN 列表中的一個值。如果是,返回值為 1;否則返回值為 0。

14) NOT IN

NOT IN 運算符用來判斷表達式是否為 IN 列表中的一個值。如果不是,返回值為 1;否則返回值為 0。

邏輯運算符

在 SQL 語言中,所有邏輯運算符求值所得的結(jié)果均為 TRUE、FALSE 或 NULL。在 MySQL 中分別體現(xiàn)為 1(TRUE)、0(FALSE)和 NULL。

MySQL 中的邏輯運算符如下表所示。

邏輯運算符說明
NOT 或者 !邏輯非
AND 或者 &&邏輯與
OR 或者 ||邏輯或
XOR邏輯異或

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

1) NOT 或者 !

邏輯非運算符 NOT 或者 !,表示當(dāng)操作數(shù)為 0 時,返回值為 1;當(dāng)操作數(shù)為非零值時,返回值為 0;當(dāng)操作數(shù)為 NULL 時,返回值為 NULL。

2) AND 或者 &&

邏輯與運算符 AND 或者 &&,表示當(dāng)所有操作數(shù)均為非零值并且不為 NULL 時,返回值為 1;當(dāng)一個或多個操作數(shù)為 0 時,返回值為 0;其余情況返回值為 NULL。

3) OR 或者 ||

邏輯或運算符 OR 或者 ||,已經(jīng)為大家精心準備了大數(shù)據(jù)的系統(tǒng)學(xué)習(xí)資料,從Linux-Hadoop-spark-......,需要的小伙伴可以點擊表示當(dāng)兩個操作數(shù)均為非 NULL 值且任意一個操作數(shù)為非零值時,結(jié)果為 1,否則結(jié)果為 0;當(dāng)有一個操作數(shù)為 NULL 且另一個操作數(shù)為非零值時,結(jié)果為 1,否則結(jié)果為 NULL;當(dāng)兩個操作數(shù)均為 NULL 時,所得結(jié)果為 NULL。

4) XOR

邏輯異或運算符 XOR。當(dāng)任意一個操作數(shù)為 NULL 時,返回值為 NULL;對于非 NULL 的操作數(shù),若兩個操作數(shù)都不是 0 或者都是 0 值,則返回結(jié)果為 0;若一個為 0,另一個不為非 0,則返回結(jié)果為 1。

位運算符

位運算符是用來對二進制字節(jié)中的位進行移位或者測試處理的。

MySQL 中提供的位運算符如下表所示。

位運算符說明
|按位或
&按位與
^按位異或
<<按位左移
>>按位右移
~按位取反,反轉(zhuǎn)所有比特

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

1) 位或運算符“|”

位或運算的實質(zhì)是將參與運算的兩個數(shù)據(jù)按對應(yīng)的二進制數(shù)逐位進行邏輯或運算。若對應(yīng)的二進制位有一個或兩個為 1,則該位的運算結(jié)果為 1,否則為 0。

2) 位與運算符“&”

位與運算的實質(zhì)是將參與運算的兩個數(shù)據(jù)按對應(yīng)的二進制數(shù)逐位進行邏輯與運算。若對應(yīng)的二進制位都為 1,則該位的運算結(jié)果為 1,否則為 0。

3) 位異或運算符“^”

位異或運算的實質(zhì)是將參與運算的兩個數(shù)據(jù)按對應(yīng)的二進制數(shù)逐位進行邏輯異或運算。對應(yīng)的二進制位不同時,對應(yīng)位的結(jié)果才為 1。如果兩個對應(yīng)位都為 0 或者都為 1,則對應(yīng)位的結(jié)果為 0。

4) 位左移運算符“<<”

位左移運算符“<<”使指定的二進制值的所有位都左移指定的位數(shù)。左移指定位數(shù)之后,左邊高位的數(shù)值將被移出并丟棄,右邊低位空出的位置用 0 補齊。

語法格式為表達式<<n,這里 n 指定值要移位的位數(shù)。

5) 位右移運算符“>>”

位右移運算符“>>”使指定的二進制值的所有位都右移指定的位數(shù)。右移指定位數(shù)之后,右邊高位的數(shù)值將被移出并丟棄,左邊低位空出的位置用 0 補齊。

語法格式為表達式>>n,這里 n 指定值要移位的位數(shù)。

6) 位取反運算符“~”

位取反運算符的實質(zhì)是將參與運算的數(shù)據(jù)按對應(yīng)的二進制數(shù)逐位反轉(zhuǎn),即 1 取反后變 0,0 取反后變?yōu)?1。

運算符的優(yōu)先級決定了不同的運算符在表達式中計算的先后順序,下表列出了 MySQL 中的各類運算符及其優(yōu)先級。

優(yōu)先級由低到高排列運算符
1=(賦值運算)、:=
2II、OR
3XOR
4&&、AND
5NOT
6BETWEEN、CASE、WHEN、THEN、ELSE
7=(比較運算)、<=>、>=、>、<=、<、<>、!=、?IS、LIKE、REGEXP、IN
8|
9&
10<<、>>
11-(減號)、+
12*、/、%
13^
14-(負號)、?(位反轉(zhuǎn))
15!

可以看出,不同運算符的優(yōu)先級是不同的。一般情況下,級別高的運算符優(yōu)先進行計算,如果級別相同,MySQL 按表達式的順序從左到右依次計算。

另外,在無法確定優(yōu)先級的情況下,可以使用圓括號“()”來改變優(yōu)先級,并且這樣會使計算過程更加清晰。

總結(jié)

以上是生活随笔為你收集整理的MySQL常用运算符详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。