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

查看該表數(shù)據(jù):

要求查詢的結果同時輸出“first_name”與“l(fā)ast_name”:

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

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

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

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

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

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

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

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

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

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

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

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

使用“TRAILING”刪除后續(xù)特定字符:

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

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

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

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

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

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

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

查看數(shù)據(jù)表“name”中的詳細記錄:

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

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

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

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

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

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

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

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

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

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

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

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

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

函數(shù)IS [NOT] NULL
查看數(shù)據(jù)表“name”:

查找姓名為空的記錄:

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

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


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

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


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

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

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

因此對數(shù)據(jù)表“name”加以改造:

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

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

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

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

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

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

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

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

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

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

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

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

驗證原密碼能否登陸:

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

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