1、字符函數
函數名稱 | 描述
----|------|----
CONCAT() | 字符連接
CONCAT_WS() | 使用指定的分隔符進行字符連接
FORMAT() | 數字格式化
LOWER() | 轉換成小寫字母
UPPER() | 轉換成大寫字母
LEFT() | 獲取左側字符
RIGHT() | 獲取右側字符
LENGTH() | 獲取字符串長度
LTRIM() | 刪除前導空格
RTRIM() | 刪除后續空格
TRIM() | 刪除前導和后續空格
SUBSTRING() | 字符串截取
[NOT] LIKE() | 模式匹配
REPLACE() | 字符串替換
函數CONCAT()
創建數據表“name”并插入記錄:

查看該表數據:

要求查詢的結果同時輸出“first_name”與“last_name”:

使用“concat()”連接,并賦予別名:

函數CONCAT_WS()
函數CONCAT_WS()要求至少有3個參數,第一個是參數是指定的分隔符,例如“.”,后續的參數是要連接的數據:

函數FORMAT()
函數FORMAT()可以將數字格式化為字符型,“,”之后的數字為保留到幾位小數:

函數LOWER()、UPPER()
函數LOWER()可以將數據轉化為純小寫字母:

函數UPPER()可以將數據轉化為純大寫字母:

函數LEFT()、RIGHT()
函數LEFT()參數中“,”的數字為從左側獲取幾位字符:

函數RIGHT()參數中“,”的數字為從右側獲取幾位字符,還可以進行函數的嵌套,將獲取的字符進行小寫轉化:

函數LENGTH()
函數LENGTH()可以獲取字符串的長度,注意空格也算在長度之內:

函數LTRIM()、RTRIM()、TRIM()
函數LTRIM()可以將第一個字符前的空格刪除:

函數RTRIM()可以將最后一個字符后的空格刪除:

函數TRIM()可以將字符前后的空格都刪除:

除此之外,函數TRIM()還可以刪除特定字符,例如使用“LEADING”刪除前導特定字符:

使用“TRAILING”刪除后續特定字符:

使用“BOTH”刪除前導及后續特定字符:

函數SUBSTRING()
函數SUBSTRING()可以截取字符串,參數分別是要截取的內容,從第幾位開始截取,截取幾位;要注意的是MySQL是從1開始,與Java從0開始不同:

如果只注明從第幾位開始截取,那么SUBSTRING()會一直截取到字符串的結尾:

SUBSTRING()的起始位置參數還可以是負值,代表從末尾開始倒數的第幾位;但要注意,截取的長度不能是負值,否則結果為空:

函數[NOT] LIKE()
函數LIKE()可以模糊匹配,使用通配符“_”或“%”,“_”指任意一個字母;“%”指任意大于0個字母:
查看數據表“user”中的詳細記錄:

例如查找姓名第4個字母為“e”的用戶記錄:

例如查找姓名中含有字母“o”的用戶記錄:

查看數據表“name”中的詳細記錄:

查詢帶有“%”符號的記錄:

結果出現了未帶有“%”的記錄,原因是系統將3個“%”全部認為是通配符,因此,可以在中間的“%”前加轉義字符“\”,使系統認為其只是普通的“%”符號,沒有特殊意義:

函數REPLACE()
之前的LTRIM()、RTRIM()、TRIM()只能對字符之前或之后的空格進行處理,而對于字符中間的空格則無能為力,對此可以使用REPLACE()進行替換,其參數分別是待處理的字符串,要替換的字符,替換后的字符:

而且要替換的字符及替換后的字符數量并沒有限制:

2、數值運算符與函數
數值運算符即常見的:+、-、x、/等等,這里不做詳細的演示,而函數如下表所示:
函數名稱 | 描述
----|------|----
CEIL() | 進一取整
DIV | 整數除法
FLOOR() | 舍一取整
MOD | 取余數
POWER() | 冪運算
ROUND() | 四舍五入
TRUNCATE() | 數字截取
函數CEIL()、FLOOR()
只要小數點后有位數,函數CEIL()就向上取整;而函數FLOOR()則剛好相反,會向下取整:

函數DIV
函數DIV進行整數除法,結果只保留到整數:

函數MOD
函數MOD進行取余數與取模相同,對于整數或浮點數都適用:

函數POWER()
函數POWER()即冪運算,例如求2的12次方:

函數ROUND()
函數ROUND()就是常見的四舍五入,參數分別是待處理的數據以及要保留幾位小數,例如對3.652分別保留2位、1位以及取整:

函數TRUNCATE()
函數TRUNCATE()即數字截斷,參數分別是待處理的數據以及要保留幾位小數,與ROUND()不同,TRUNCATE()會直接去掉被截斷的數字,例如對3.652分別保留2位、1位以及取整:

3、比較運算符與函數
函數名稱 | 描述
----|------|----
[NOT] BETWEEN……AND…… | [不]在……范圍之內
[NOT] IN() | [不]在列出值范圍內
IS [NOT] NULL | [不]為空
函數[NOT] BETWEEN……AND……
查看數據表“user”中的詳細記錄:

查找年齡在14歲至28歲之間的用戶記錄:

函數[NOT] IN()
函數[NOT] IN()括號中的內容就是列出值的范圍:

函數IS [NOT] NULL
查看數據表“name”:

查找姓名為空的記錄:

4、日期時間函數
函數名稱 | 描述
----|------|----
NOW() | 當前時間和日期
CURDATE() | 當前日期
CURTIME() | 當前時間
DATE_ADD() | 日期變化
DATEDIFF() | 日期差值
DATE_FORMAT() | 日期格式化
函數NOW()、CURDATE()、CURTIME()
函數NOW()返回當前查詢時的日期及時間,而函數CURDATE()、CURTIME()則是分別顯示日期或時間:

函數DATE_ADD()
函數DATE_ADD()可以對日期進行增減,參數為代修改的日期以及要增減的量,常用的關鍵詞有YEAR、MONTH、WEEK、DAY等:


函數DATEDIFF()
函數DATEDIFF()可以計算日期之間差值,例如2016年6月28日距離現在相差多少:

函數DATE_FORMAT()
函數DATE_FORMAT()可以轉換日期的格式:


5、信息函數
函數名稱 | 描述
----|------|----
CONNECTION_ID() | 連接ID
DATABASE() | 當前數據庫
LAST_INSERT_ID() | 最后插入記錄的ID
USER() | 當前用戶
VERSION() | 版本信息
函數CONNECTION_ID()
函數CONNECTION_ID()可以返回MySQL服務器的連接數,也就是到目前為止MySQL服務的連接次數,每個連接都有各自唯一的ID:

函數DATABASE()
函數DATABASE()顯示當前數據庫:

函數LAST_INSERT_ID()
函數LAST_INSERT_ID()需要有類似“ID”的自動編號字段:

因此對數據表“name”加以改造:

添加一條新記錄,此時“id”編號自增應為5,查詢最后插入記錄的ID,結果確實是5:

如果一次插入多條記錄,那么只會查詢到多條記錄中第一條插入記錄的ID:

函數USER()、VERSION()
函數USER()、VERSION()分別顯示登錄的用戶名及MySQL版本信息:

6、聚合函數
函數名稱 | 描述
----|------|----
AVG() | 平均值
COUNT() | 計數
MAX() | 最大值
MIN() | 最小值
SUM() | 求和
聚合函數都只有一個返回值,下列演示都使用數據表“tdb_goods”:
![]()
函數AVG()
求所有商品的平均價格:

還可以使用函數ROUND()對其進行四舍五入,并保留2為小數:

函數COUNT()
求商品的總數量:

函數MAX()
求最高的商品價格:

函數MIN()
求最低的商品價格:

函數SUM()
求所有商品的總價格:

7、加密函數
函數名稱 | 描述
----|------|----
MD5() | 信息摘要算法
PASSWORD() | 密碼算法
函數MD5()
函數MD5()為計算機安全領域廣泛使用的一種散列函數,用以提供消息的完整性保護:

如果該數據庫中的信息是用于日后的WEB應用,建議都使用MD5進行加密。
函數PASSWORD()
函數PASSWORD()更多的用于密碼的計算:

例如修改MySQL用戶的登錄密碼:

驗證原密碼能否登陸:

使用修改后的密碼“root”進行登錄:

8、運算符與函數匯總:
- 字符函數
函數名稱 | 描述
----|------|----
CONCAT() | 字符連接
CONCAT_WS() | 使用指定的分隔符進行字符連接
FORMAT() | 數字格式化
LOWER() | 轉換成小寫字母
UPPER() | 轉換成大寫字母
LEFT() | 獲取左側字符
RIGHT() | 獲取右側字符
LENGTH() | 獲取字符串長度
LTRIM() | 刪除前導空格
RTRIM() | 刪除后續空格
TRIM() | 刪除前導和后續空格
SUBSTRING() | 字符串截取
[NOT] LIKE() | 模式匹配
REPLACE() | 字符串替換
- 數值運算符與函數
函數名稱 | 描述
----|------|----
CEIL() | 進一取整
DIV | 整數除法
FLOOR() | 舍一取整
MOD | 取余數
POWER() | 冪運算
ROUND() | 四舍五入
TRUNCATE() | 數字截取
- 比較運算符與函數
函數名稱 | 描述
----|------|----
[NOT] BETWEEN……AND…… | [不]在……范圍之內
[NOT] IN() | [不]在列出值范圍內
IS [NOT] NULL | [不]為空
- 日期時間函數
函數名稱 | 描述
----|------|----
NOW() | 當前時間和日期
CURDATE() | 當前日期
CURTIME() | 當前時間
DATE_ADD() | 日期變化
DATEDIFF() | 日期差值
DATE_FORMAT() | 日期格式化
- 信息函數
函數名稱 | 描述
----|------|----
CONNECTION_ID() | 連接ID
DATABASE() | 當前數據庫
LAST_INSERT_ID() | 最后插入記錄的ID
USER() | 當前用戶
VERSION() | 版本信息
- 聚合函數
函數名稱 | 描述
----|------|----
AVG() | 平均值
COUNT() | 計數
MAX() | 最大值
MIN() | 最小值
SUM() | 求和
- 加密函數
函數名稱 | 描述
----|------|----
MD5() | 信息摘要算法
PASSWORD() | 密碼算法
版權聲明:歡迎轉載,歡迎擴散,但轉載時請標明作者以及原文出處,謝謝合作! ↓↓↓