溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL數(shù)據(jù)庫中有哪幾種運算符

發(fā)布時間:2021-09-10 11:07:25 來源:億速云 閱讀:465 作者:chen 欄目:MySQL數(shù)據(jù)庫

這篇文章主要介紹“MySQL數(shù)據(jù)庫中有哪幾種運算符”,在日常操作中,相信很多人在MySQL數(shù)據(jù)庫中有哪幾種運算符問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MySQL數(shù)據(jù)庫中有哪幾種運算符”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

前言:

MySQL數(shù)據(jù)庫中有以下幾種運算符:算術(shù)運算符;比較運算符;邏輯運算符;位運算符。

文章大綱:

  • 一、算術(shù)運算符;

  • 二、比較運算符;

  • 三、邏輯運算符;

  • 四、位運算符;

  • 五、運算符優(yōu)先級

這篇文章將介紹這幾種運算符的作用。

一、算術(shù)運算符

MySQL數(shù)據(jù)庫中有哪幾種運算符

注意:在除法運算和模運算中,如果除數(shù)為0,將是非法除法,返回結(jié)果為NULL。

示例:

mysql> create table t1(num int);
mysql> insert into t1 values(64);
mysql> select num,num+10,num-3,num*3,num%3,num/3 from t1;

返回的內(nèi)容如下:

MySQL數(shù)據(jù)庫中有哪幾種運算符

二、比較運算符

select語句中的條件語句經(jīng)常要使用比較運算符。通過這些比較運算符,可以判斷表中的哪些記錄時符合條件的,比較結(jié)果為真,則返回1,為假則返回0,比較結(jié)果不確定則返回NULL。

MySQL數(shù)據(jù)庫中有哪幾種運算符

1、等于運算符

等于運算符用來判斷數(shù)字、字符串和表達式是否相等,如果相等,則返回值為1,否則返回值為0,如果有一個值是NULL,則比較結(jié)果是NULL。

mysql> select 1=0,'2'=2,(1+3)=(2+2),NULL=NULL;

MySQL數(shù)據(jù)庫中有哪幾種運算符

2、嚴格等于運算符(<=>)

這個操作符和等于運算符(=)的作用一致,只不過多了一個功能,就是可以判斷NULL值,如下:

mysql> select 1<=>0,'2'<=>2,(1+3)<=>(2+2),NULL<=>NULL;

返回結(jié)果如下:

MySQL數(shù)據(jù)庫中有哪幾種運算符

3、不等于運算符(<>或!=)

不等于運算符用于判斷數(shù)字、字符串、表達式是否不相等,如果不相等則返回 1,否則返回 0 ,但是不能判斷 NULL 值。

mysql> SELECT 'good'<>'god', 1<>2, 4!=4, 5.5!=5, NULL<>NULL ;

MySQL數(shù)據(jù)庫中有哪幾種運算符

4、IS NULL 、IS NOT NULL
  • IS  NULL是 檢驗一個值是否為 NULL ,如果為 NULL ,返回值為 1,否則返回值為 0;

  • IS  NOT  NULL 檢驗一個值是否不為 NULL ,如果不為 NULL ,返回值為 1,否則返回值為 0。

mysql> SELECT NULL IS NULL, (10) IS NULL, 10 IS NOT NULL ;

返回的結(jié)果如下:

MySQL數(shù)據(jù)庫中有哪幾種運算符

5、BETWEEN  AND

用于判斷一個值是否落在兩個值之間。

mysql> select 4 between 1 and 5,4 between 4 and 6,12 between 9 and 10;

返回的結(jié)果如下:

MySQL數(shù)據(jù)庫中有哪幾種運算符

6、LEAST 、GREATEST
  • LEAST :當有兩個或多個參數(shù)時,返回最小值,如果有一個值是 NULL ,則返回結(jié)果為 NULL;

  • GREATEST :當有兩個或多個參數(shù)時,返回最大值,如果有一個值是 NULL ,則返回結(jié)果為 NULL。

mysql> select least(2,0),least('a','b','c'),least(10,NULL),greatest(2,0),greatest(10,NULL);

返回的結(jié)果如下:
MySQL數(shù)據(jù)庫中有哪幾種運算符

7、IN、NOT IN
  • IN :判斷一個值是否是 IN 列表中的任意一個值;

  • NOT  IN :判斷一個值是否不是 IN 列表中的任意一個值。

mysql> select 2 in(3,5,8,2),2 not in(1,3,5);

返回的結(jié)果如下:

MySQL數(shù)據(jù)庫中有哪幾種運算符

8、LIKE
  • LIKE 運算符用來匹配字符串,如果匹配則返回 1,如果不匹配則返回 0;

  • LIKE 使用兩種通配符:'%' 用于匹配任何數(shù)目的字符,包括零字符 ; '_' 只能匹配一個字符。

mysql> select 'stud' like 'stu_','stud' like 's___','stud' like '%d';

返回結(jié)果如下:

MySQL數(shù)據(jù)庫中有哪幾種運算符

9、REGEXP

1)REGEXP運算符用來匹配字符串,如果匹配則返回1,如果不匹配則返回0;
2)REGEXP 使用以下幾種通配符:

  • '^':用于匹配以什么開頭的字符串;

  • '$':用以匹配以什么結(jié)尾的字符串;

  • '.':用于匹配任何一個單字符串;

  • '[...]':用于匹配在方括號內(nèi)的任何字符;

  • '*'用于匹配零個或多個在它前面的字符;

mysql> select 'ssky' regexp '^s', 'ssky' regexp 'y$', 'ssky' regexp '.sky', 'ssky' regexp '[ab]' ;

返回的結(jié)果如下:

MySQL數(shù)據(jù)庫中有哪幾種運算符

三、邏輯運算符

邏輯運算符用來判斷表達式的真假。如果表達式是真,結(jié)果返回 1。如果表達式是假,結(jié)果返回 0。

MySQL數(shù)據(jù)庫中有哪幾種運算符

1、邏輯非(NOT 或 ?。?/h5>
  • 當操作數(shù)為 0 時,所得值為 1;

  • 當操作數(shù)為非 0 時,所得值為 0;

  • 當操作數(shù)為 NULL 時,所得值為 NULL。

mysql> select not  10,!10,not(1-1),!(1-1),not 1+1,not null;

MySQL數(shù)據(jù)庫中有哪幾種運算符

2、邏輯與(AND或&&)
  • 當所有操作數(shù)均為非零值、并且不為 NULL 時,所得值為 1;

  • 當一個或多個操作數(shù)為 0 時,所得值為 0 ;

  • 其余情況所得值為 NULL。

mysql> select 1 and -1,1 && 0,0 and null,1 && null;

MySQL數(shù)據(jù)庫中有哪幾種運算符

3、邏輯或(OR 或 || )
  • 當兩個操作數(shù)均為非 NULL 值,且任意一個操作數(shù)為非零值時,結(jié)果為 1 ,否則為 0;

  • 當有一個操作數(shù)為 NULL ,且另一個操作數(shù)為非零值時,則結(jié)果為 1 ,否則結(jié)果為 NULL;

  • 當兩個操作數(shù)均為 NULL 時,則所得結(jié)果為 NULL。

mysql> select 1 or -1 or 0,1 || 2,0 or null,null|| null;

返回結(jié)果如下:

MySQL數(shù)據(jù)庫中有哪幾種運算符

4、邏輯異或(XOR)
  • a XOR b 的計算等同于 ( a AND (NOT b) ) 或 ( (NOT a) AND b );

  • 當任意一個操作數(shù)為 NULL 時,返回值為 NULL;

  • 對于非 NULL 的操作數(shù),如果兩個操作數(shù)都是非 0 值或者都是 0 值,則返回結(jié)果為 0;

  • 如果一個為 0 值,另一個為非 0 值,返回結(jié)果為 1。

mysql> select 1 xor 1,0 xor 0,1 xor 0,1 xor null,1 xor 1 xor 1;

返回結(jié)果如下:

MySQL數(shù)據(jù)庫中有哪幾種運算符

四、位運算符

位運算符是在二進制數(shù)上進行計算的運算符。位運算會先將操作數(shù)變成二進制數(shù),進行位運算。然后再將計算結(jié)果從二進制數(shù)變回十進制數(shù)。

MySQL數(shù)據(jù)庫中有哪幾種運算符

1、位或運算符( | )

對應的二進制位有一個或兩個為 1 ,則該位的運算結(jié)果為 1 ,否則為 0。

mysql> select 10|15,9|4|2;
+-------+-------+
| 10|15 | 9|4|2 |    <!--10的二進制為1010,15的二進制為1111,按位或運算之后結(jié)果為1111,即15-->
+-------+-------+    <!--9的二進制為1001,4為0100,2的二進制為0010,按位或運算之后1111,即15-->
|    15 |    15 |
+-------+-------+
1 row in set (0.00 sec)
2、位與運算符(&)

對應的二進制位都為 1 ,則該位的運算結(jié)果為 1 ,否則為 0。

mysql> select 10 & 15,9 & 4 & 2;
+---------+-----------+
| 10 & 15 | 9 & 4 & 2 |
+---------+-----------+
|      10 |         0 |
+---------+-----------+
1 row in set (0.00 sec)
3、位異或運算符(^)

對應的二進制位不相同時,結(jié)果為 1 ,否則為 0。

mysql> select 10 ^ 15,1 ^ 0,1^1;

MySQL數(shù)據(jù)庫中有哪幾種運算符

4、位左移運算符(<<)

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

mysql> select 1<<2,4<<2;

返回的結(jié)果如下:

MySQL數(shù)據(jù)庫中有哪幾種運算符

在上述位左移運算中,1的二進制值為00000001,左移兩位之后變成00000100,即十進制數(shù)4;4的二進制值為00000100,左移兩位之后變成00010000,即十進制數(shù)16。

5、位右移運算符(>>)

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

mysql> select 1 >> 1,16 >> 2;

返回的結(jié)果如下:

MySQL數(shù)據(jù)庫中有哪幾種運算符

6、位取反運算符(~)

將對應的二進制數(shù)逐位反轉(zhuǎn),即 1 取反后變 0 ,0 取反后變 1。

mysql> select 5 &~1;

MySQL數(shù)據(jù)庫中有哪幾種運算符

關(guān)于上述的返回值解釋:SQL語句是將5和進行位取反的數(shù)字1進行位與運算(&),位于運算的原則是對應的二進制位都位1,則該位為1,否則為0,5的二進制數(shù)為0101,1的二進制數(shù)為0001,1進行位取反后的值就是1110,那么0101和1110進行位與運算的結(jié)果就是0100,也就是4。

五、運算符優(yōu)先級

注:最低優(yōu)先級為:":="
MySQL數(shù)據(jù)庫中有哪幾種運算符

最高優(yōu)先級為: !、BINARY、 COLLATE。

到此,關(guān)于“MySQL數(shù)據(jù)庫中有哪幾種運算符”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI