1、數學函數
2、聚集函數 AVG(col)傳回指定列的平均值col)傳回指定列的最小值 MAX(col)傳回指定列的最大值 SUM(col)傳回指定列的所有值總和 GROUP_CONCAT(col) 傳回由屬於一類群組的列值連結組合而成的結果 3、字串函數
4、日期和時間函數 CURDATE()或CURRENT_DATE() 傳回目前的日期CURDATE()或CURRENT_DATE() 傳回目前的日期
CURDATE()或CURRENT_DATE() 傳回目前的日期CURDATE()或CURRENT_DATE() 傳回目前的日期
CURDATE()或CURRENT_DATE() 傳回目前的日期CURDATE()或CURRENT_DATE() 傳回目前的日期
CURDATE()或CURRENT_DATE() 傳回目前的日期CURDATE()或CURRENT_DATE() 傳回目前的日期
CURTIME()或CURRENT_TIME() 傳回目前的時間- CURRENT_DATE,INTERVAL 6 MONTH);
- DATE_FORMAT(date,fmt) 依照指定的fmt格式格式化日期date值
- DATE_SUB(date,INTERB(date,INdate int必須按照關鍵字進行格式化),如:SELECTDATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH);
-
DAYOFWEEK(date) 返回date所代表的一星期中的第幾天(1~7)
-
DAYOFMONTH(date) 回傳date是一個月的第幾天(1~31)
-
DAYOFYEAR(date) 回傳date是一年的第幾天(1~366)
-
DAYNAY(dateDAYNAY(date) 返回的星期名,如:SELECT DAYNAME(CURRENT_DATE);
-
FROM_UNIXTIME(ts,fmt) 依據指定的fmt格式,格式化UNIX時間點傳回
-
HOUR(time) 返回的戳time 23)
-
MINUTE(time) 傳回time的分鐘值(0~59)
-
MONTH(date) 傳回date的月份值(1~12)
)名,如:SELECT-
🎜MONTHNAME(CURRENT_DATE);🎜🎜🎜🎜NOW() 傳回目前的日期和時間🎜🎜🎜🎜QUARTER(date) 返回目前的日期和時間🎜🎜🎜🎜QUARTER(date) 返回144),如一年中的季度。 SELECT QUARTER(CURRENT_DATE);🎜🎜🎜🎜WEEK(date) 返回日期date為一年中第幾週(0~53)🎜
YEAR(date) 回報FROM CURRENT_DATE) ;
SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(birthday, '%Y') -(DATE_FORMAT(NOW(), '00-%m-%d') 、- 加密函數
AES_ENCRYPT(str,key) :返回用密鑰key對字串str利用高級加密標準演算法加密後的結果,調用AES_ENCRYPT的結果是一個二進位字串,以BLOB類型儲存
- AES_DECRYPT(str,key) 傳回以金鑰key對字串str利用高階加密標準演算法解密後的結果
DECODE(str,key):使用key作為金鑰解密加密字串str
- ENCRYPT (str,salt): 使用UNIXcrypt()函數,用關鍵字salt(一個可以惟一確定口令的字串,就像鑰匙一樣)加密字串str
- ENCODE(str,key): 使用key作為密鑰加密字串str,呼叫ENCODE()的結果是一個二進位字串,它以BLOB型別儲存
- MD5() 計算字串str的MD5校驗和
- PASSWORD(str) 傳回字串str的加密版本,這個加密過程是不可逆的,和UNIX密碼加密過程使用不同的演算法。 :
SELECT ENCRYPT('root','salt');
SELECT ENCODE('xufeng','key'); SELECT DECODE(ENCODE('xufeng','key'),'key'); 解密放在一起 - SELECT AES_ENCRYPT('root','key');
SELECT AES_DECRYPT(AES_ENCRYPT('root','key'),'key'); S
SELECT MD5('123456'); '123456');
-
6、控制流函數
- MySQL有4個函數是用來進行條件操作的,這些函數可以實現SQL的條件邏輯,允許開發者將一些應用程式業務邏輯轉換到資料庫後台。 ] WHEN[val1] THEN [result]…ELSE [default]END
- 如果test和valN相等,則返回resultN,否則返回default
- IF(test,t,f) 如果test是真,返回t;否則回傳f
IFNULL(arg1,arg2) 如果arg1不是空,則回傳arg1,否則回傳arg2
NULLIF(arg1,arg2) 如果arg1=arg2回傳NULL;否則回傳
NULLIF(arg1,arg2) 如果arg1=arg2回傳NULL;否則回傳
這些函數的第一個是IFNULL(),它有兩個參數,並且對第一個參數進行判斷。如果第一個參數不是NULL,函數就會向呼叫者傳回第一個參數;如果是NULL,將會傳回第二個參數。
如:SELECT IFNULL(1,2), IFNULL(NULL,10),IFNULL(4*NULL,'false'); NULLIF()函數將會檢驗提供的兩個參數是否相等,如果相等,則傳回NULL,如果不相等,就傳回第一個參數。
- 如:SELECT NULLIF(1,1),NULLIF('A','B'),NULLIF(2+3,4+1);
- 和許多腳本語言提供的IF()函數一樣,MySQL的IF()函數也可以建立一個簡單的條件測試,這個函數有三個參數,第一個是要被判斷的表達式,如果表達式為真,IF()將會傳回第二個參數,如果為假,IF()將會傳回第三個參數。
如:SELECTIF(1100,'true','false'); IF()函數在只有兩種可能結果時才適合使用。然而,在現實世界中,我們可能發現在條件測試中會需要多個分支。在這種情況下,MySQL提供了CASE函數,它就跟PHP和Perl語言的switch-case條件程式一樣。 -
CASE函數的格式有些複雜,通常如下所示: CASE [expression to be evaluated] WHEN [val 1] THEN [result 1] WHEN [val 2] THEN [result 2] WHEN [val 3] THEN [result 3] …… WHEN [val n] THEN [result n] ELSE [default result] END
這裡,第一個參數是要被判斷的值或表達式,接下來的是一系列的WHEN-THEN區塊,每一塊的第一個參數指定要比較的值,如果為真,就回傳結果。所有的WHEN-THEN區塊將以ELSE區塊結束,當END結束了所有外部的CASE區塊時,如果前面的每一個區塊都不匹配就會傳回ELSE區塊指定的預設結果。如果沒有指定ELSE區塊,而且所有的WHEN-THEN比較都不是真,MySQL將會傳回NULL。
CASE函數還有另外一種句法,有時使用起來非常方便,如下: CASE WHEN [conditional test 1] THEN [result 1] WHEN [conditional test 2] THEN [result 2] ELSE [default result] END在這種條件下,傳回的結果取決於對應的條件測試是否為真。
範例:
- 範例:
-
mysql>SELECT CASE 'green' WHEN 'red' THEN 'stop' WHEN 'green' THEN 'go' END;
, I WHEN 2 THEN 'b' ELSE 'N/A' END; SELECT CASE WHEN (2+2)=4 THEN 'OK' WHEN(2+2)4 THEN 'not OK' END ASSTATUS; SELECT Name,IF((IsActive = 1),'已啟動','未啟動') AS RESULT FROMUserLoginInfo; SELECT fname,lname,(math+sci+lit) AS total, CASE WHEN (math+sci+lit)
7、格式化函數 DATE_FORMAT( ,fmt) 依照字串fmt格式化日期date值 FORMAT(x,y) 把x格式化為以逗號隔開的數字序列,y是結果的小數位數 INET_ATON(ip)傳回IP位址的數字表示 INET_NTOA(num) 回傳數字所代表的IP位址-
TIME_FORMAT(time,fmt) 依照字串fmt格式化時間值 其中最簡單的函數是FORMAT(fmt) ,它可以把大的數值格式化為以逗號間隔的易讀的序列。 範例:
-
範例:
- SELECT FORMAT(34234.34323432,3);
- Sv.D.
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d'); SELECT DATE_FORMAT(19990330,'%Y-%m-%d');
- S ,'%h:%i %p');
SELECT INET_ATON('10.122.89.47');
- SELECT INET_NTOA(175790383); 為了進行資料類型轉化,MySQL提供了CAST()函數,它可以把一個值轉換成指定的資料類型。
類型有:BINARY,CHAR,DATE,TIME,DATETIME,SIGNED,UNSIGNED
reee
-
BENCHMARK(count,expr) 將表達式expr重複運行count次
CONNECTION_ID() 傳回目前客戶的連接ID
FOUND_ROWS() 傳回最後一個行查詢的最後一行編號()或SYSTEM_USER() 傳回目前登陸使用者名稱
VERSION() 傳回的現有登陸使用者名稱
VERSION() 回傳MySQL伺服器的版本
-
範例:
SELECT DATABASE(),VERSION(),ARKUS(998),ARKUS99ECT (RAND()*PI())); #該例中,MySQL計算LOG(RAND()*PI())表達式9999999次。
以上就是 【MySQL 09】常用函數的內容,更多相關內容請關注PHP中文網(www.php.cn)!