天天看點

MySQL之函數

  備戰2022春招或暑期實習,本專欄會持續輸出MySQL系列文章,祝大家每天進步億點點!文末私信作者,我們一起去大廠。

本篇總結的是 《MySQL之函數》,後續會每日更新~

關于《Redis入門到精通》、《并發程式設計》、《Java全面入門》、《鴻蒙開發》等知識點可以參考我的往期部落格

相信自己,越活越堅強,活着就該逢山開路,遇水架橋!生活,你給我壓力,我還你奇迹!

MySQL之函數

目錄

1、簡介

2、正文

2.1 文本處理函數

2.2 日期處理函數

2.3 數值處理函數

2.4 聚集函數

MySQL内置了很多函數用于各種場景資料處理。函數往往能夠處理文本資料、日期資料、數值資料以及傳回系統相關資訊;除普通函數之外MySQL還内置了一些聚集函數,用于對表中資料進行彙總、求和等操作。

聚集函數:

指的是運作在行組上,計算和傳回單個值的函數。

使用MySQL的函數有很多好處:

SQL編寫簡易、美觀

計算速度快于客戶機

減少資料傳回,節省網絡帶寬資源

不過MySQL函數不一定在其他資料庫系統支援(文法不同),是以SQL的移植性比較差。

文本處理函數能夠對文本進行大小寫轉換、組合、去除空格等操作。

MySQL之函數
MySQL之函數
MySQL之函數
MySQL之函數
MySQL之函數
MySQL之函數
MySQL之函數
MySQL之函數
MySQL之函數
MySQL之函數
MySQL之函數
MySQL之函數
MySQL之函數

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