mysql之?dāng)?shù)學(xué)計(jì)算、字符串處理和條件判斷

1.數(shù)學(xué)函數(shù)

數(shù)學(xué)函數(shù):用來(lái)處理數(shù)值數(shù)據(jù)站粟,主要有3類(lèi)-取整函數(shù)(ROUND()黍图、CEIL()、FLOOR())奴烙、絕對(duì)值函數(shù)(ABS())助被、求余函數(shù)(MOD())

  • CEIL(X)剖张、CELING(X):向上取整,返回大于等于X的最小INT函數(shù)恰起。
  • FLOOR(X):向下取整修械,返回小于等于X的最小INT函數(shù)。
  • ROUND(X,D):舍入函數(shù)检盼,X表示要處理的數(shù),D表示保留的小數(shù)位數(shù)翘单,處理方式就是四舍五入吨枉,ROUND(X)
    表示保留0位小數(shù)。
  • ABS(X):獲取X的絕對(duì)值哄芜。
  • MOD(X,Y):表示獲取X被Y除后的余數(shù)貌亭。
mysql> SELECT
    -> membername AS '會(huì)員',
    -> transactionno AS '單號(hào)',
    -> transdate AS '交易時(shí)間',
    -> goodsname AS '商品名稱(chēng)',
    -> salesvalue AS '交易金額',
    -> FLOOR(salesvalue) AS '積分'  -- 使用FLOOR函數(shù)向下取整
    -> FROM
    -> demo.transactiondetails
+------+------------------+---------------------+----------+----------+------+
| 會(huì)員 | 單號(hào)             | 交易時(shí)間            | 商品名稱(chēng) | 交易金額 | 積分 |
+------+------------------+---------------------+----------+----------+------+
| 張三 | 0120201201000001 | 2020-12-01 14:25:56 | 書(shū)       |   176.22 |  176 |
| 張三 | 0120201201000001 | 2020-12-01 14:25:56 | 筆       |    24.75 |   24 |
| 李四 | 0120201202000001 | 2020-12-02 10:50:50 | 書(shū)       |   234.96 |  234 |
| 李四 | 0120201202000001 | 2020-12-02 10:50:50 | 筆       |    26.40 |   26 |
+------+------------------+---------------------+----------+----------+------+
4 rows in set (0.01 sec)

2.字符串函數(shù)

字符串函數(shù)官方文檔:https://dev.mysql.com/doc/refman/8.0/en/string-functions.html
字符串函數(shù)主要用到4種函數(shù):CAST()、CONCAT()认臊、CHAR_LENGTH()圃庭、SPACE()。

  • CONCAT(s1,s2,...):表示把字符串s1失晴、s2...拼接起來(lái)剧腻,組成一個(gè)字符串。
  • CAST(表達(dá)式 AS CHAR):將表達(dá)式的值轉(zhuǎn)換成字符串涂屁。
  • CHAR_LENGTH(字符串):表示獲取字符串的長(zhǎng)度书在。
  • SPACE(n):獲取一個(gè)由n個(gè)空格組成的字符串。
  • 其他函數(shù):


    image.png
#1.CONCAT函數(shù)拼接
mysql> SELECT
-> CONCAT(goodsname, '(', specification, ')') AS 商品信息 -- 這里把商品名稱(chēng)拆又、括號(hào)和規(guī)格拼接起來(lái)
-> FROM
-> demo.goodsmaster
-> WHERE itemnumber = 1;
+----------+
| 商品信息 |
+----------+
| 書(shū)(16開(kāi)) |
+----------+
1 row in set (0.00 sec)
#2.CAST()函數(shù)拼接
mysql> SELECT
-> CAST(quantity AS CHAR) -- 把decimal類(lèi)型轉(zhuǎn)換成字符串
-> FROM
-> demo.transactiondetails
-> WHERE
-> transactionid = 1 AND itemnumber =1;
+---------------------+
| CAST(price AS CHAR) |
+---------------------+
| 2.000 |
+---------------------+
1 rows in set (0.00 sec)
#3.CHAR_LENGTH()
mysql> SELECT
-> CHAR_LENGTH(CAST(quantity AS CHAR)) AS 長(zhǎng)度
-> FROM
-> demo.transactiondetails
-> WHERE
-> transactionid = 1 AND itemnumber =1;
+---------------------+
| 長(zhǎng)度 |
+---------------------+
| 5 |
+---------------------+
1 rows in set (0.00 sec)
#4.SPACE()
mysql> SELECT
-> CHAR_LENGTH(CAST(quantity AS CHAR)) AS 長(zhǎng)度
-> FROM
-> demo.transactiondetails
-> WHERE
-> transactionid = 1 AND itemnumber =1;
+---------------------+
| 長(zhǎng)度 |
+---------------------+
| 5 |
+---------------------+
1 rows in set (0.00 sec)

3.條件判斷函數(shù)

IF(表達(dá)式儒旬,V1,V2):如果表達(dá)式為真,則返回V1帖族,否則返回V2栈源。
IFNULL(V1,V2):如果V1的值不為空,則返回V1竖般,否則返回V2甚垦。


mysql> SELECT
    -> goodsname,
    -> specification,
    -> -- 這里做判斷,如果是空值捻激,返回商品名稱(chēng)制轰,否則就拼接規(guī)格
    -> IF(ISNULL(specification),  #ISNULL(specification)表達(dá)式判斷specification是否為空
    -> goodsname,
    -> CONCAT(goodsname, '(', specification, ')')) AS 拼接
    -> FROM
    -> demo.goodsmaster;
+-----------+---------------+----------+
| goodsname | specification | 拼接     |
+-----------+---------------+----------+
| 書(shū)        | 16開(kāi)          | 書(shū)(16開(kāi)) |
| 筆        | NULL          | 筆       |
+-----------+---------------+----------+
2 rows in set (0.02 sec)

總結(jié)一下:


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市胞谭,隨后出現(xiàn)的幾起案子垃杖,更是在濱河造成了極大的恐慌,老刑警劉巖丈屹,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件调俘,死亡現(xiàn)場(chǎng)離奇詭異伶棒,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)彩库,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)肤无,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人骇钦,你說(shuō)我怎么就攤上這事宛渐。” “怎么了眯搭?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵窥翩,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我鳞仙,道長(zhǎng)寇蚊,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任棍好,我火速辦了婚禮仗岸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘借笙。我一直安慰自己扒怖,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布提澎。 她就那樣靜靜地躺著姚垃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盼忌。 梳的紋絲不亂的頭發(fā)上积糯,一...
    開(kāi)封第一講書(shū)人閱讀 52,696評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音谦纱,去河邊找鬼看成。 笑死,一個(gè)胖子當(dāng)著我的面吹牛跨嘉,可吹牛的內(nèi)容都是我干的川慌。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼祠乃,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼梦重!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起亮瓷,我...
    開(kāi)封第一講書(shū)人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤琴拧,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后嘱支,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蚓胸,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡挣饥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沛膳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扔枫。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖锹安,靈堂內(nèi)的尸體忽然破棺而出短荐,到底是詐尸還是另有隱情,我是刑警寧澤八毯,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布搓侄,位于F島的核電站,受9級(jí)特大地震影響话速,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜芯侥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一泊交、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧柱查,春花似錦廓俭、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至淋硝,卻和暖如春雹熬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背谣膳。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工竿报, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人继谚。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓烈菌,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親花履。 傳聞我的和親對(duì)象是個(gè)殘疾皇子芽世,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容