手把手教你MySQL運算符
一、算術(shù)運算符
主要用于數(shù)學運算,其可以連接運算符前后的兩個數(shù)值或表達式,對數(shù)值或表達式進行加 (+)、減(-)、乘(*)、除(/)和取模(%)運算
1.加法與減法運算符
- 一個整數(shù)類型的值對整數(shù)進行加法和減法操作,結(jié)果還是一個整數(shù)
- 一個整數(shù)類型的值對浮點數(shù)進行加法和減法操作,結(jié)果是一個浮點數(shù)
- 在Java中,+的左右兩邊如果有字符串,那么表示字符串的拼接。但是在MySQL中+只表示數(shù)
值相加。如果遇到非數(shù)值類型,先嘗試轉(zhuǎn)成數(shù)值,如果轉(zhuǎn)失敗,就按0計算
2.乘法與除法運算符
- 一個數(shù)乘以整數(shù)1和除以整數(shù)1后仍得原數(shù)
- 一個數(shù)除以整數(shù)后,不管是否能除盡,結(jié)果都為一個浮點數(shù)
- 一個數(shù)除以另一個數(shù),除不盡時,結(jié)果為一個浮點數(shù),并保留到小數(shù)點后4位
- 乘法和除法的優(yōu)先級相同,進行先乘后除操作與先除后乘操作,得出的結(jié)果相同
在數(shù)學運算中,0不能用作除數(shù),在MySQL中,一個數(shù)除以0為NULL
3、求模(求余)運算符
#篩選出employee_id是偶數(shù)的員工 SELECT * FROM employees WHERE employee_id MOD 2 = 0;
二、比較運算符
用來對表達式左邊的操作數(shù)和右邊的操作數(shù)進行比較,比較的結(jié)果為真則返回1,比較的結(jié)果
為假則返回0,其他情況則返回NULL
比較運算符經(jīng)常被用來作為SELECT查詢語句的條件來使用,返回符合條件的結(jié)果記錄

4.等號運算符
等號運算符(=)判斷等號兩邊的值、字符串或表達式是否相等,若相等則返回1,不相等則返回0
在使用等號運算符時,遵循如下規(guī)則
○如果等號兩邊的值、字符串或表達式都為字符串,則MySQL會按照字符串進行比較,其比較的是每個字符串中字符的ANSI編碼是否相等
○如果等號兩邊的值一個是整數(shù),另一個是字符串,則MySQL會將字符串轉(zhuǎn)化為數(shù)字進行比較
○如果等號兩邊的值、字符串或表達式中有一個為NULL,則比較結(jié)果為NULL
5.安全等于運算符
安全等于運算符(<=>)與等于運算符(=)的作用是相似的, 唯一的區(qū)別 是‘<=>’可以用來對NULL進行判斷。在兩個操作數(shù)均為NULL時,其返回值為1,而不為NULL;當一個操作數(shù)為NULL時,其返回值為0,而不為NULL
6.不等于運算符
不等于運算符(<>和!=)用于判斷兩邊的數(shù)字、字符串或者表達式的值是否不相等,如果不相等則返回1,相等則返回0 ???非符號類型的運算符

7. 空運算符
IS NULL
判斷一個值是否為NULL,如果為NULL則返回1,否則返回0
8. 非空運算符
IS NOT NULL
判斷一個值是否不為NULL,如果不為NULL則返回1,否則返回0
9. 最小值運算符
語法格式為:LEAST(值1,值2,...,值n)其中,“值n”表示參數(shù)列表中有n個值
在有兩個或多個參數(shù)的情況下,返回最小值
??注:當參數(shù)是整數(shù)或者浮點數(shù)時,LEAST將返回其中最小的值;當參數(shù)為字符串時,返回字
母表中順序最靠前的字符;當比較值列表中有NULL時,不能判斷大小,返回值為NULL
10.最大值運算符
語法格式為:GREATEST(值1,值2,...,值n)其中,n表示參數(shù)列表中有n個值
當有兩個或多個參數(shù)時,返回值為最大值。假如任意一個自變量為NULL,則GREATEST()的返回值為NULL
11.BETWEEN AND運算符
BETWEEN運算符使用的格式
通常為SELECT D FROM TABLE WHERE C BETWEEN A AND B
此時,當C大于或等于A,并且C小于或等于B時,結(jié)果為1,否則結(jié)果為0
12.IN運算符
IN運算符用于判斷給定的值是否是IN列表中的一個值,如果是則返回1,否則返回0
如果給定的值為NULL,或者IN列表中存在NULL,則結(jié)果為NULL
13.NOT IN運算符
NOT IN運算符用于判斷給定的值是否不是IN列表中的一個值,如果不是IN列表中的一個值,則返回1,否則返回0
14.LIKE運算符
LIKE運算符主要用來匹配字符串,通常用于模糊匹配,如果滿足條件則返回1,否則返回0
如果給定的值或者匹配條件為NULL,則返回結(jié)果為NULL
15.ESCAPE
回避特殊符號的:使用轉(zhuǎn)義符
SELECT job_id FROM jobs WHERE job_id LIKE ‘IT\_%‘;
如果使用 \表示轉(zhuǎn)義,要省略 ESCAPE。如果不是\,則要加上ESCAPE
SELECT job_id FROM jobs WHERE job_id LIKE ‘IT$_%‘ escape ‘$‘;
16.REGEXP運算符
REGEXP運算符用來匹配字符串,語法格式為: expr REGEXP 匹配條件
如果expr滿足匹配條件,返回1;如果不滿足,則返回0
REGEXP運算符在進行匹配時,常用的有下面幾種通配符:
(1)‘^’匹配以該字符后面的字符開頭的字符串。
(2)‘$’匹配以該字符前面的字符結(jié)尾的字符串。
(3)‘.’匹配任何一個單字符。
(4)“[...]”匹配在方括號內(nèi)的任何字符。例如,“[abc]”匹配“a”或“b”或“c”。為了命名字符的范圍,使用一
個‘-’。“[a-z]”匹配任何字母,而“[0-9]”匹配任何數(shù)字。
(5)‘*’匹配零個或多個在它前面的字符。例如,“x*”匹配任何數(shù)量的‘x’字符,“[0-9]*”匹配任何數(shù)量的數(shù)字,
而“*”匹配任何數(shù)量的任何字符。
三、邏輯運算符
主要用來判斷表達式的真假

1.邏輯非運算符
邏輯非(NOT或!)運算符表示當給定的值為0時返回1;當給定的值為非0值時返回0;當給定的值為NULL時,返回NULL邏輯與運算符
邏輯與(AND或&&)運算符是當給定的所有值均為非0值,并且都不為NULL時,返回1;當給定的一個值或者多個值為0時則返回0;否則返回NULL
2.邏輯或運算符
邏輯或(OR或||)運算符是當給定的值都不為NULL,并且任何一個值為非0值時,則返回1,否則返回0;當一個值為NULL,并且另一個值為非0值時,返回1,否則返回NULL;當兩個值都為NULL時,返回NULL
??注:OR可以和AND一起使用,但是AND的優(yōu)先級高于OR
3.邏輯異或運算符
邏輯異或(XOR)運算符是當給定的值中任意一個值為NULL時,則返回NULL;如果兩個非NULL的值都是0或者都不等于0時,則返回0;如果一個值為0,另一個值不為0時,則返回1
四、位運算符
位運算符是在二進制數(shù)上進行計算的運算符

1.按位與運算符
按位與(&)運算符將給定值對應(yīng)的二進制數(shù)逐位進行邏輯與運算。當給定值對應(yīng)的二進制位的數(shù)值都為1時,則該位返回1,否則返回0
2.按位或運算符
按位或(|)運算符將給定的值對應(yīng)的二進制數(shù)逐位進行邏輯或運算。當給定值對應(yīng)的二進制位的數(shù)值有一個或兩個為1時,則該位返回1,否則返回0
3.按位異或運算符
按位異或(^)運算符將給定的值對應(yīng)的二進制數(shù)逐位進行邏輯異或運算。當給定值對應(yīng)的二進制位的數(shù)值不同時,則該位返回1,否則返回0
4.按位取反運算符
按位取反(~)運算符將給定的值的二進制數(shù)逐位進行取反操作,即將1變?yōu)?,將0變?yōu)?
5.按位左移運算符
按位左移(<<)運算符將給定的值的二進制數(shù)的所有位左移指定的位數(shù)
左移指定的位數(shù)后,左邊高位的數(shù)值被移出并丟棄,右邊低位空出的位置用0補齊
五、運算符的優(yōu)先級

總結(jié)
到此這篇關(guān)于MySQL運算符的文章就介紹到這了,更多相關(guān)MySQL運算符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解記錄MySQL中l(wèi)ower_case_table_names的坑
這篇文章主要介紹了詳解記錄MySQL中l(wèi)ower_case_table_names的坑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03
linux配置mysql數(shù)據(jù)庫遠程連接失敗的解決方法
這篇文章主要為大家詳細介紹了linux配置mysql數(shù)據(jù)庫遠程連接失敗的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06
mysqldump命令導入導出數(shù)據(jù)庫方法與實例匯總
這篇文章主要介紹了mysqldump命令導入導出數(shù)據(jù)庫方法與實例匯總的相關(guān)資料,需要的朋友可以參考下2015-10-10

