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