備戰2022春招或暑期實習,本專欄會持續輸出MySQL系列文章,祝大家每天進步億點點!文末私信作者,我們一起去大廠。
本篇總結的是 《MySQL之函數》,後續會每日更新~
關于《Redis入門到精通》、《并發程式設計》、《Java全面入門》、《鴻蒙開發》等知識點可以參考我的往期部落格
相信自己,越活越堅強,活着就該逢山開路,遇水架橋!生活,你給我壓力,我還你奇迹!
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5COzUWNlRmZ2EWYwMmYmRWOhZmZ0kzY0MDN0EmMlVjYw8CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
目錄
1、簡介
2、正文
2.1 文本處理函數
2.2 日期處理函數
2.3 數值處理函數
2.4 聚集函數
MySQL内置了很多函數用于各種場景資料處理。函數往往能夠處理文本資料、日期資料、數值資料以及傳回系統相關資訊;除普通函數之外MySQL還内置了一些聚集函數,用于對表中資料進行彙總、求和等操作。
聚集函數:
指的是運作在行組上,計算和傳回單個值的函數。
使用MySQL的函數有很多好處:
SQL編寫簡易、美觀
計算速度快于客戶機
減少資料傳回,節省網絡帶寬資源
不過MySQL函數不一定在其他資料庫系統支援(文法不同),是以SQL的移植性比較差。
文本處理函數能夠對文本進行大小寫轉換、組合、去除空格等操作。
mysql> select avg(price) as avg_price, count(*) as row_size, max(price) as max_price, sum(price) as sum_price from product;
+-------------+----------+-----------+-----------+
| avg_price | row_size | max_price | sum_price |
+-------------+----------+-----------+-----------+
| 5656.800000 | 5 | 6799.00 | 28284.00 |
+-------------+----------+-----------+-----------+
注意:上面有說到count()函數可以統計表的行數,但是如果我們希望統計的是針對某一列去重的行數,此時可以使用distinct關鍵字,但是它隻能作用于指定字段,不能作用于*。
正确用法:
1.mysql> select count(distinct price) from product;
+-----------------------+
| count(distinct price) |
+-----------------------+
| 5 |
+-----------------------+
錯誤用法:
1.mysql> select count(distinct *) from product;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) from product' at line 1