手把手教你MySQL運(yùn)算符
一、算術(shù)運(yùn)算符
主要用于數(shù)學(xué)運(yùn)算,其可以連接運(yùn)算符前后的兩個(gè)數(shù)值或表達(dá)式,對(duì)數(shù)值或表達(dá)式進(jìn)行加 (+)、減(-)、乘(*)、除(/)和取模(%)運(yùn)算
1.加法與減法運(yùn)算符
- 一個(gè)整數(shù)類型的值對(duì)整數(shù)進(jìn)行加法和減法操作,結(jié)果還是一個(gè)整數(shù)
- 一個(gè)整數(shù)類型的值對(duì)浮點(diǎn)數(shù)進(jìn)行加法和減法操作,結(jié)果是一個(gè)浮點(diǎn)數(shù)
- 在Java中,+的左右兩邊如果有字符串,那么表示字符串的拼接。但是在MySQL中+只表示數(shù)
值相加。如果遇到非數(shù)值類型,先嘗試轉(zhuǎn)成數(shù)值,如果轉(zhuǎn)失敗,就按0計(jì)算
2.乘法與除法運(yùn)算符
- 一個(gè)數(shù)乘以整數(shù)1和除以整數(shù)1后仍得原數(shù)
- 一個(gè)數(shù)除以整數(shù)后,不管是否能除盡,結(jié)果都為一個(gè)浮點(diǎn)數(shù)
- 一個(gè)數(shù)除以另一個(gè)數(shù),除不盡時(shí),結(jié)果為一個(gè)浮點(diǎn)數(shù),并保留到小數(shù)點(diǎn)后4位
- 乘法和除法的優(yōu)先級(jí)相同,進(jìn)行先乘后除操作與先除后乘操作,得出的結(jié)果相同
在數(shù)學(xué)運(yùn)算中,0不能用作除數(shù),在MySQL中,一個(gè)數(shù)除以0為NULL
3、求模(求余)運(yùn)算符
#篩選出employee_id是偶數(shù)的員工 SELECT * FROM employees WHERE employee_id MOD 2 = 0;
二、比較運(yùn)算符
用來(lái)對(duì)表達(dá)式左邊的操作數(shù)和右邊的操作數(shù)進(jìn)行比較,比較的結(jié)果為真則返回1,比較的結(jié)果
為假則返回0,其他情況則返回NULL
比較運(yùn)算符經(jīng)常被用來(lái)作為SELECT查詢語(yǔ)句的條件來(lái)使用,返回符合條件的結(jié)果記錄
4.等號(hào)運(yùn)算符
等號(hào)運(yùn)算符(=)判斷等號(hào)兩邊的值、字符串或表達(dá)式是否相等,若相等則返回1,不相等則返回0
在使用等號(hào)運(yùn)算符時(shí),遵循如下規(guī)則
○如果等號(hào)兩邊的值、字符串或表達(dá)式都為字符串,則MySQL會(huì)按照字符串進(jìn)行比較,其比較的是每個(gè)字符串中字符的ANSI編碼是否相等
○如果等號(hào)兩邊的值一個(gè)是整數(shù),另一個(gè)是字符串,則MySQL會(huì)將字符串轉(zhuǎn)化為數(shù)字進(jìn)行比較
○如果等號(hào)兩邊的值、字符串或表達(dá)式中有一個(gè)為NULL,則比較結(jié)果為NULL
5.安全等于運(yùn)算符
安全等于運(yùn)算符(<=>)與等于運(yùn)算符(=)的作用是相似的, 唯一的區(qū)別 是‘<=>’可以用來(lái)對(duì)NULL進(jìn)行判斷。在兩個(gè)操作數(shù)均為NULL時(shí),其返回值為1,而不為NULL;當(dāng)一個(gè)操作數(shù)為NULL時(shí),其返回值為0,而不為NULL
6.不等于運(yùn)算符
不等于運(yùn)算符(<>和!=)用于判斷兩邊的數(shù)字、字符串或者表達(dá)式的值是否不相等,如果不相等則返回1,相等則返回0 ???非符號(hào)類型的運(yùn)算符
7. 空運(yùn)算符
IS NULL
判斷一個(gè)值是否為NULL,如果為NULL則返回1,否則返回0
8. 非空運(yùn)算符
IS NOT NULL
判斷一個(gè)值是否不為NULL,如果不為NULL則返回1,否則返回0
9. 最小值運(yùn)算符
語(yǔ)法格式為:LEAST(值1,值2,...,值n)其中,“值n”表示參數(shù)列表中有n個(gè)值
在有兩個(gè)或多個(gè)參數(shù)的情況下,返回最小值
??注:當(dāng)參數(shù)是整數(shù)或者浮點(diǎn)數(shù)時(shí),LEAST將返回其中最小的值;當(dāng)參數(shù)為字符串時(shí),返回字
母表中順序最靠前的字符;當(dāng)比較值列表中有NULL時(shí),不能判斷大小,返回值為NULL
10.最大值運(yùn)算符
語(yǔ)法格式為:GREATEST(值1,值2,...,值n)其中,n表示參數(shù)列表中有n個(gè)值
當(dāng)有兩個(gè)或多個(gè)參數(shù)時(shí),返回值為最大值。假如任意一個(gè)自變量為NULL,則GREATEST()的返回值為NULL
11.BETWEEN AND運(yùn)算符
BETWEEN運(yùn)算符使用的格式
通常為SELECT D FROM TABLE WHERE C BETWEEN A AND B
此時(shí),當(dāng)C大于或等于A,并且C小于或等于B時(shí),結(jié)果為1,否則結(jié)果為0
12.IN運(yùn)算符
IN運(yùn)算符用于判斷給定的值是否是IN列表中的一個(gè)值,如果是則返回1,否則返回0
如果給定的值為NULL,或者IN列表中存在NULL,則結(jié)果為NULL
13.NOT IN運(yùn)算符
NOT IN運(yùn)算符用于判斷給定的值是否不是IN列表中的一個(gè)值,如果不是IN列表中的一個(gè)值,則返回1,否則返回0
14.LIKE運(yùn)算符
LIKE運(yùn)算符主要用來(lái)匹配字符串,通常用于模糊匹配,如果滿足條件則返回1,否則返回0
如果給定的值或者匹配條件為NULL,則返回結(jié)果為NULL
15.ESCAPE
回避特殊符號(hào)的:使用轉(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運(yùn)算符
REGEXP運(yùn)算符用來(lái)匹配字符串,語(yǔ)法格式為: expr REGEXP 匹配條件
如果expr滿足匹配條件,返回1;如果不滿足,則返回0
REGEXP運(yùn)算符在進(jìn)行匹配時(shí),常用的有下面幾種通配符:
(1)‘^’匹配以該字符后面的字符開(kāi)頭的字符串。
(2)‘$’匹配以該字符前面的字符結(jié)尾的字符串。
(3)‘.’匹配任何一個(gè)單字符。
(4)“[...]”匹配在方括號(hào)內(nèi)的任何字符。例如,“[abc]”匹配“a”或“b”或“c”。為了命名字符的范圍,使用一
個(gè)‘-’。“[a-z]”匹配任何字母,而“[0-9]”匹配任何數(shù)字。
(5)‘*’匹配零個(gè)或多個(gè)在它前面的字符。例如,“x*”匹配任何數(shù)量的‘x’字符,“[0-9]*”匹配任何數(shù)量的數(shù)字,
而“*”匹配任何數(shù)量的任何字符。
三、邏輯運(yùn)算符
主要用來(lái)判斷表達(dá)式的真假
1.邏輯非運(yùn)算符
邏輯非(NOT或!)運(yùn)算符表示當(dāng)給定的值為0時(shí)返回1;當(dāng)給定的值為非0值時(shí)返回0;當(dāng)給定的值為NULL時(shí),返回NULL邏輯與運(yùn)算符
邏輯與(AND或&&)運(yùn)算符是當(dāng)給定的所有值均為非0值,并且都不為NULL時(shí),返回1;當(dāng)給定的一個(gè)值或者多個(gè)值為0時(shí)則返回0;否則返回NULL
2.邏輯或運(yùn)算符
邏輯或(OR或||)運(yùn)算符是當(dāng)給定的值都不為NULL,并且任何一個(gè)值為非0值時(shí),則返回1,否則返回0;當(dāng)一個(gè)值為NULL,并且另一個(gè)值為非0值時(shí),返回1,否則返回NULL;當(dāng)兩個(gè)值都為NULL時(shí),返回NULL
??注:OR可以和AND一起使用,但是AND的優(yōu)先級(jí)高于OR
3.邏輯異或運(yùn)算符
邏輯異或(XOR)運(yùn)算符是當(dāng)給定的值中任意一個(gè)值為NULL時(shí),則返回NULL;如果兩個(gè)非NULL的值都是0或者都不等于0時(shí),則返回0;如果一個(gè)值為0,另一個(gè)值不為0時(shí),則返回1
四、位運(yùn)算符
位運(yùn)算符是在二進(jìn)制數(shù)上進(jìn)行計(jì)算的運(yùn)算符
1.按位與運(yùn)算符
按位與(&)運(yùn)算符將給定值對(duì)應(yīng)的二進(jìn)制數(shù)逐位進(jìn)行邏輯與運(yùn)算。當(dāng)給定值對(duì)應(yīng)的二進(jìn)制位的數(shù)值都為1時(shí),則該位返回1,否則返回0
2.按位或運(yùn)算符
按位或(|)運(yùn)算符將給定的值對(duì)應(yīng)的二進(jìn)制數(shù)逐位進(jìn)行邏輯或運(yùn)算。當(dāng)給定值對(duì)應(yīng)的二進(jìn)制位的數(shù)值有一個(gè)或兩個(gè)為1時(shí),則該位返回1,否則返回0
3.按位異或運(yùn)算符
按位異或(^)運(yùn)算符將給定的值對(duì)應(yīng)的二進(jìn)制數(shù)逐位進(jìn)行邏輯異或運(yùn)算。當(dāng)給定值對(duì)應(yīng)的二進(jìn)制位的數(shù)值不同時(shí),則該位返回1,否則返回0
4.按位取反運(yùn)算符
按位取反(~)運(yùn)算符將給定的值的二進(jìn)制數(shù)逐位進(jìn)行取反操作,即將1變?yōu)?,將0變?yōu)?
5.按位左移運(yùn)算符
按位左移(<<)運(yùn)算符將給定的值的二進(jìn)制數(shù)的所有位左移指定的位數(shù)
左移指定的位數(shù)后,左邊高位的數(shù)值被移出并丟棄,右邊低位空出的位置用0補(bǔ)齊
五、運(yùn)算符的優(yōu)先級(jí)
總結(jié)
到此這篇關(guān)于MySQL運(yùn)算符的文章就介紹到這了,更多相關(guān)MySQL運(yùn)算符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL出現(xiàn)莫名其妙的斷開(kāi)連接以及解決方案
這篇文章主要介紹了MySQL出現(xiàn)莫名其妙的斷開(kāi)連接以及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11使用mysqldump對(duì)MySQL的數(shù)據(jù)進(jìn)行備份的操作教程
這篇文章主要介紹了使用mysqldump對(duì)MySQL的數(shù)據(jù)進(jìn)行備份的操作教程,示例環(huán)境基于CentOS操作系統(tǒng),需要的朋友可以參考下2015-12-12MySQL中distinct和group?by去重效率區(qū)別淺析
distinct 與 group by均可用于去重,下面這篇文章主要給大家介紹了關(guān)于MySQL中distinct和group?by去重效率區(qū)別的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03使用use index優(yōu)化sql查詢的詳細(xì)介紹
本篇文章是對(duì)使用use index優(yōu)化sql查詢進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Mysql中 show table status 獲取表信息的方法
這篇文章主要介紹了Mysql中 show table status 獲取表信息的方法的相關(guān)資料,需要的朋友可以參考下2016-03-03干掉一堆mysql數(shù)據(jù)庫(kù),僅需這樣一個(gè)shell腳本(推薦)
這篇文章主要介紹了干掉一堆mysql數(shù)據(jù)庫(kù),僅需這樣一個(gè)shell腳本,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04