MySQL運(yùn)算符

算數(shù)運(yùn)算符

算術(shù)運(yùn)算符分為:加(+)、減(-)、乘(*)、除(/ 或 DIV)、取余(%或MOD)。

SELECT 100 + 1.0
FROM dule; // 101.0
  1. 在SQL中,加法運(yùn)算符沒有拼接的意思。如果表達(dá)式中有字符串,則會(huì)被隱式轉(zhuǎn)為數(shù)字;如果無法轉(zhuǎn)為數(shù)字,則會(huì)當(dāng)作數(shù)字0處理;
  2. 如果對(duì)整數(shù)進(jìn)行加減操作,結(jié)果仍是整數(shù)。如果加減運(yùn)算中存在浮點(diǎn)數(shù),則結(jié)果也是相同小數(shù)位數(shù)的浮點(diǎn)數(shù);
  3. 整數(shù)相乘,仍得整數(shù);整數(shù)和浮點(diǎn)數(shù)相乘,得到相同小數(shù)位數(shù)的浮點(diǎn)數(shù);兩數(shù)相除,無論是否除凈,得到4位小數(shù)的浮點(diǎn)數(shù);
  4. 如果把0作為分母,則相除得到NULL;

比較運(yùn)算符

比較運(yùn)算符有 = 、<=>、!=、>、<、>=、<=等。比較的結(jié)果為真則返回1,為假則返回0,其他情況返回NULL。
1. 等號(hào)運(yùn)算符(=)| 不等于運(yùn)算符(!= 或 <>):判斷左右兩邊的值、字符串、表達(dá)式是否相等。

SELECT NULL = NULL
FROM dule; // 0
  • 如果左右兩邊都是字符串,則判斷其ANSI碼是否相等;
  • 如果左右兩邊都是數(shù)字,則對(duì)比其大??;
  • 如果一個(gè)是數(shù)字,一個(gè)是字符串,則把字符串轉(zhuǎn)為數(shù)字進(jìn)行比較,無法直接轉(zhuǎn)為數(shù)字的轉(zhuǎn)為0;
  • 如果表達(dá)式中包含NULL,則結(jié)果為NULL

2. 安全等于運(yùn)算符(<=>):與等號(hào)運(yùn)算符的唯一區(qū)別是判斷NULL = NULL1。
3. 空運(yùn)算符(IS NULL 或 ISNULL())| 非空運(yùn)算符(IS NOT NULL):判斷一個(gè)值是否為NULL。

SELECT * FROM frontends WHERE 1 IS NULL;
SELECT * FROM frontends WHERE ISNULL(1);

4. 最小|最大值運(yùn)算符(LEAST() | GREASTEST()):返回一組數(shù)中的最小\最大值。

SELECT LEAST(屬性1,屬性2) FROM DULE;
  • 語法為 LEAST/GREASTEST(值1,值2,值3,...)
  • 如果數(shù)據(jù)中包含NULL,則返回NULL;
  • 如果數(shù)據(jù)中包含數(shù)字和字符串,如果字符串可以轉(zhuǎn)為數(shù)字,則轉(zhuǎn)后比較。如果不能則報(bào)錯(cuò)。

5. 區(qū)間運(yùn)算符(BETWEEN AND )

SELECT * FROM frontends WHERE 1 BETWEEN 2 AND 10;
  • 語法為BETWEEN A AND B,左邊小,右邊大;
  • 閉合區(qū)間。

6. 屬于運(yùn)算符 | 不屬于運(yùn)算符(IN() | NOT IN()):判斷給定的值是否在集合中。

SELECT * FROM frontends WHERE 1 IN(1,2,3);
  • 語法為 IN/NOT IN(值1,值2,值3,...);

7. 模糊匹配運(yùn)算符(LIKE):主要用于模糊匹配字符串。

# 查找frontends表中名字的第二個(gè)字母為a的數(shù)據(jù);
SELECT * FROM frontends WHERE `name` LIKE '_a%';
  • 如果滿足條件則返回1,不滿足條件返回0,給定值或匹配條件為NULL則返回NULL;
  • 匹配條件需要用單引號(hào)''包裹,而不能用著重號(hào);
  • 使用通配符%,匹配0~n個(gè)字符;
  • 使用通配符_,匹配一個(gè)字符;

轉(zhuǎn)義字符
(1)使用符號(hào) \ 表示其后面緊跟的特殊字符是轉(zhuǎn)義字符;
(2)使用關(guān)鍵字ESCAPE來指定任意字符作為轉(zhuǎn)義符號(hào)`。

8. 正則運(yùn)算符(REGEXP | RLIKE)

SELECT c FROM table WHERE a REGEXP b;
  • ‘^’匹配以該字符后面的字符開頭的字符串;
  • ‘$’匹配以該字符前面的字符結(jié)尾的字符串;
  • ‘.’匹配任何一個(gè)單字符;
  • [...] 匹配在方括號(hào)內(nèi)的任何字符。例如,[abc] 匹配“a”或“b”或“c”。使用一 個(gè)‘-’表示范圍?!癧a-z]”匹配任何字母,而“[0-9]”匹配任何數(shù)字;
  • 星號(hào)匹配0~n個(gè)它前面的字符。例如,“x*”匹配任何數(shù)量的‘x’字符,“[0-9]*”匹配任何數(shù)量的數(shù)字, 而“*”匹配任何數(shù)量的任何字符。

邏輯運(yùn)算符

邏輯運(yùn)算符主要用來判斷表達(dá)式的真假,在MySQL中,邏輯運(yùn)算符的返回結(jié)果為1、0或者NULL
1. 與(AND 或 &&):所有值都非0且非NULL時(shí)返回1;有0時(shí)返回0;其他情況(非0 + NULL、都是NULL)返回NULL;
2. 或(OR 或 ||):有1時(shí)返回1;所有值都是0時(shí)返回0;其他情況(0 + NULL、都是NULL)返回NULL;
3. 異或(XOR):有NULL時(shí)返回NULL;非NULL的值都為非0或者都為0時(shí)返回0;非NULL的值有一個(gè)為非0且另一個(gè)為0時(shí)返回1;
4. 非(NOT 或 !):當(dāng)給定的值為0時(shí)返回1;當(dāng)給定的值為非0值時(shí)返回0;為NULL時(shí),返回NULL。

位運(yùn)算符

位運(yùn)算符是在二進(jìn)制數(shù)上進(jìn)行計(jì)算的運(yùn)算符。位運(yùn)算符會(huì)先將操作數(shù)變成二進(jìn)制數(shù),然后進(jìn)行位運(yùn)算,最后將計(jì)算結(jié)果從二進(jìn)制變回十進(jìn)制數(shù)。
1. 按位與運(yùn)算符(&):將給定的二進(jìn)制數(shù)逐位進(jìn)行邏輯與運(yùn)算。都為1時(shí)該位得1,否則該位為0;
2. 按位或運(yùn)算符(|):將給定的二進(jìn)制數(shù)逐位進(jìn)行邏輯或運(yùn)算。都有1時(shí)該位得1,否則該位為0;
3. 按位異或運(yùn)算符(^):將給定的二進(jìn)制數(shù)逐位進(jìn)行邏輯或運(yùn)算。都兩數(shù)一個(gè)為1一個(gè)為0時(shí)該位得1,否則該位為0;
4. 按位取反運(yùn)算符(~):將給定的二進(jìn)制數(shù)逐位取反。即將1變成0,0變成1;
5. 按位左移運(yùn)算符(<<):將給定的二進(jìn)制數(shù)的所有位向左移指定位數(shù),左邊移除的高位數(shù)丟棄,右邊不足的低位數(shù)用0補(bǔ)齊;
6. 按位右移運(yùn)算符(>>):將給定的二進(jìn)制數(shù)的所有位向右移指定位數(shù),右邊移除的低位數(shù)丟棄,左邊不足的高位數(shù)用0補(bǔ)齊。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.算術(shù)運(yùn)算符 算術(shù)運(yùn)算符適用于數(shù)值類型的數(shù)據(jù),通常應(yīng)用在SELECT查詢結(jié)果的字段中使用,在WHERE條件表達(dá)式...
    碼海無際閱讀 477評(píng)論 0 1
  • 前言 看了關(guān)于MySQL運(yùn)算符的視頻,記錄下學(xué)習(xí)筆記。 MySQL算數(shù)運(yùn)算符 MySQL比較運(yùn)算符 相等 ↑ 字符...
    吃土的咸魚iooi閱讀 326評(píng)論 0 0
  • 分類: ⑴ 字符函數(shù) ⑵ 數(shù)值運(yùn)算符與函數(shù) ⑶ 比較運(yùn)算符與函數(shù) ⑷ 日期時(shí)間函數(shù) ⑸ 信息函數(shù) ⑹ 聚合函數(shù) ⑺...
    指間Hrc閱讀 786評(píng)論 0 0
  • MySQL運(yùn)算符操作 數(shù)值比較/字符比較 數(shù)值比較:=,!=,>,>=,<,<= 字符比較:=,!= 邏輯比較 a...
    遇明不散閱讀 124評(píng)論 0 0
  • 1、字符函數(shù) 2、查找?guī)в?(通配符)的記錄,解決方案 3、數(shù)值運(yùn)算符和函數(shù) 4、比較運(yùn)算符與函數(shù) 5、日期時(shí)間函...
    Lord丶軒莫言棄閱讀 170評(píng)論 0 0

友情鏈接更多精彩內(nèi)容