[1]字元函數 [2]數值運算符 [3]比較運算符 [4]日期時間 [5]信息函數 [6]聚合函數 [7]加密函數 [8]自定義函數 ...
×
目錄
[1]字元函數 [2]數值運算符 [3]比較運算符[4]日期時間[5]信息函數[6]聚合函數[7]加密函數[8]自定義函數前面的話
mysql資料庫中的函數根據功能可以劃分為字元函數、數值運算符與函數、比較運算符與函數、日期時間函數、信息函數、聚合函數、加密函數以及自定義函數等。下麵將詳細介紹資料庫中的函數
字元函數
CONCAT()
CONCAT()函數用於字元連接
CONCAT()函數也可用於將一個數據表中的兩個欄位的所有記錄進行字元連接
CONCAT_WS()
CONCAT_WS()函數使用指定的分隔符進行字元連接,該函數的第一個參數是指定分隔符
FORMAT()
FORMAT()函數主要用於數字格式化,最終返回一個字元型數字。第一個參數為待格式化的數字,第二個參數為要保留的小數位數
LOWER()
LOWER()函數將字元轉換成大寫字母
UPPER()
UPPER()函數將字元轉換成小寫字母
LEFT()
LEFT()函數用於獲取左側字元
RIGHT()
RIGHT()函數用於獲取右側字元
LENGTH()
LENGTH()函數用於獲取字元串長度
LTRIM()
LTRIM()函數用於刪除前導空格
RTRIM()
RTRIM()函數用於刪除後續空格
TRIM()
TRIM()函數用於刪除前導和後續空格
REPLACE()
REPLACE()函數用於字元串替換
SUBSTRING()
SUBSTRING()函數用於字元串截取,第一個參數是開始截取的起始位置,第二個參數是截取的字元數目
[註意]這裡是從1開始計數的,而不是從0開始的
如果省略第二個參數,則一直截取到字元串的結尾
[NOT] LIKE
[NOT] LIKE用於模式匹配,其中%代表0個或多個字元,_代表任意1個字元。返回1表示匹配,0表示不匹配
數值運算符
CEIL()
CEIL()函數主要用於進一取整(向上取整)
FLOOR()
FLOOR()函數主要用於舍一取整(向下取整)
ROUND()
ROUND()函數主要用於四捨五入,兩個參數分別為浮點數和保留的小數位數
DIV
DIV主要用於整數除法
MOD
MOD主要用於取餘數(取模),等同於% ,可以是整數也可以是小數
POWER()
POWER()函數主要用於冪運算
TRUNCATE()
TRUNCATE()函數主要用於數字截取,兩個參數分別為數值和截斷到小數點後n位
比較運算符
[NOT] BETWEEN...AND...
[NOT] BETWEEN...AND...表示[不]在範圍之內
[NOT] IN()
[NOT] IN()表示[不]在列出值範圍內
IS [NOT] NULL
IS [NOT] NULL表示[不]為空
日期時間
NOW()
NOW()函數返回當前日期和時間
CURDATE()
CURDATE()函數返回當前日期
CURTIME()
CURTIME()函數返回當前時間
DATE_ADD()
DATE_ADD()函數日期變化,可以增加,也可以減少
DATEDIFF()
DATEDIFF()函數日期差值,兩個日期的差值
DATE_FORMAT()
DATE_FORMAT()函數進行日期格式化
信息函數
CONNECTION_ID()
CONNECTION_ID()返回連接ID(線程ID)
DATEBASE()
DATEBASE()返回當前資料庫名稱
LAST_INSERT_ID()
LAST_INSERT_ID()返回最後插入記錄的ID,當一次性寫入多條記錄時,函數返回的ID為第一條記錄的ID
USER()
USER()返回當前用戶
VERSION()
VERSION()返回版本信息
聚合函數
聚合函數只能用於數據表,不能用於單個數值的計算
下麵建立一個test數據表用來測試數據
AVG():平均值
COUNT():計數
MAX():最大值
MIN():最小值
SUM():求和
加密函數
MD5()
MD5():信息摘要演算法,為以後的Web頁面做準備,儘量使用MD5()
PASSWORD()
PASSWORD():密碼演算法,通過PASSWORD()修改當前用戶和其他用戶的密碼,修改客戶端自己的密碼
自定義函數
函數可以返回任意類型的值,同樣可以接收這些類型的參數。函數參數和返回值之前沒有必然的聯繫
[註意]一個函數最多可以有1024個參數
用戶自定義函數(user-defined function,UDF)是一種對MySQL擴展的途徑,其用法與內置函數相同
自定義函數的兩個必要條件:1、參數;2、返回值
創建自定義函數
CREATE FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL} routine_body
關於自定義函數的函數體
1.函數體可以由合法的SQL語句構成;
2.函數體可以是簡單的SELECT或INSERT語句;
3.函數體如果為複合結構則使用BEGIN...END語句;
4.複合結構可以包含聲明、迴圈、控制結構。
創建不帶參數的自定義函數
CREATE FUNCTION f1() RETURNS VARCHAR(30) RETURN DATE_FORMAT(NOW(),'%Y年%m月%d日 %H點:%i分:%s秒');
創建帶參數的自定義函數
CREATE FUNCTION f2(num1 SMALLINT UNSIGNED,num2 SMALLINT UNSIGNED) RETURNS FLOAT(10,2) UNSIGNED RETURN (num1+num2)/2;
[註意]如果自定義函數存在符合結構的多個語句,函數體要包含在BEGIN...END內,同時,需要通過DELIMITER將預設的結束符 ; 修改成其他符號,如:// $$ ,以免函數由於語句結尾的 ; 號導致中斷
刪除函數
DROP FUNCTION [IF EXISTS] function_name