MySQL流浪記(五)—— MySQL中常見函數的使用(筆記)

MySQL函數是MySQL數據庫提供的內部函數。這些內部函數可以幫助用戶更加方便的處理表中的數據。本文將簡單的介紹MySQL中一些常見的函數,方便之後查閱。

總結了SQL語句中常見的五種函數,分別是:

字符函數:對字符串、二進制數據或表達式執行操作。

數學函數:對錶中的數據進行算數運算。

日期函數:處理表中的日期和時間。

聚合函數:返回數據的總彙值。

流程控制函數:實現SQL的條件邏輯

字符函數

函數名 函數作用
ASCII(char) 返回字符的ASCII碼
BIT_LENGTH(str) 返回字符串的比特長度
CONCAT(s1,s2) 拼接字符串
CONCAT_WS(sep,s1,s2…,sn) 將s1,s2…sn連接成字符串,使用sep進行間隔
FORMAT(x,n) 將數字x進行格式化“x,xxx.xx”保留n位小
INSERT(str1,x,y,str2) 將字符串str1從x位置開始,將y個字符長的字符串替換爲str2
INSTR(str1,str2) 返回子串str2第一次在str1中出現的索引,如果找不到返回0
LEFT(str,x) 返回字符串str中最左邊的x個字符
LENGTH(str) 獲取參數值的字節個數
LOCATE(str1,str2) 在str2中查找str1第一次出現的索引
LOWER(str)/LCASE(s) 將其轉換爲小寫
LPAD(str1,num,str2) 用指定的字符str2實現左填充指定長度,如果num小於str1的 字符長度,則從右邊截斷至num字符長度
LTRIM(str) 刪除str前面的空格
POSITION(str1 IN str2) 在str2中查找str1第一次出現的索引
REPEAT(str,n) 將字符串str重複n次,如果n<=0,返回一個空字符串。如果str或者n是NULL,返回NULL
REPLACE(str1,str2,str3) 將str1中的str2全部替換爲str3
REVERSE(str) 顛倒字符串
RIGHT(str,x) 返回字符串str中最右邊的x個字符
RPAD(str1,num,str2) 用指定的字符str2實現右填充指定長度,如果num小於str1的字符長度,則從左邊截斷至num字符長度
STRCMP(s1,s2) 比較字符串s1和s2,大於1,等於0,小於-1
SUBSTR(str,num1,num2) 截取從指定索引num1處num2字符長度的字符
TRIM(str)/LTRIM(str)/RTRIM(str) 刪除str兩邊/左/右的空格,(str1,str2)刪除所有的str1
UPPER(str)/UCASE(str) 將其轉換爲大寫

回目錄

數學函數

函數名 函數作用
ABS(x) 返回絕對值
BIN(x) 返回二進制(OCT返回八進制,HEX返回十六進制)
CEILING(X) 返回大於等於x的最小整數值
EXP(x) 返回值e的x次方
FLOOR(x) 返回小於等於x的最大整數值
GREATEST(x1,x2,…,xn) 返回集合中的最大值
LEAST(x1,x2,…,xn) 返回集合中的最小值
LN(x) 返回x的自然對數
LOG(x,y) 返回x的以y爲底的對數
MOD(x,y) 返回模(x-x/y*y)
ROUND(x) 四捨五入
SQRT(x) 返回一個輸的方平根
TRUNCATE(x,y) 返回數字x截短爲y位小數的結果
POWER(x,y) 返回x的y次冪
SIGN(x) 返回x的符號,負數-1,

回目錄

日期函數

函數名 函數作用
ADDDATE(date,n) /SUBDATE(date,n) 從date開始加n天的日期
ADDTIME(t,n) 時間t加上n秒的時間
CURTIME() 獲取當前的時間
DATE_FORMAT(date,fmt) 按照指定的fmt格式進行格式化日期
DATEDIFF(d1,d2) 計算指定日期d1與d2之間相隔的天數
DAYNAME(date) 返回date的星期名
DAYOFMONTH(date) 返回date是一月中的第幾天
DAYOFWEEK(date) 返回date是一週中的第幾天
DAYOFYEAR(date) 返回date是一年中的第幾天
FROM_UNIXTIME(時間戳) 時間戳轉日期
GETDATE()/CURDATE() 獲取當前系統的日期
HOUR(date) 返回time的小時值
LAST_DAY(date) 返回指定月份的最後一天
MINUTE(date) 返回time的分鐘值
MONTH(date) 返回date中的月份值
MONTHNAME(date) 返回date的月份名
NOW() 返回當前的日期和時間
QUARTER(date) 返回date在一年中的季度(1~4)
UNIX_TIMESTAMP(date) 得到時間戳
WEEK(date) 返回date爲一年中的第幾周(0~53)
YEAR(date) 返回date的年份(1000~9999)

回目錄

聚合函數

函數名 函數作用
AVG(col) 返回指定列的平均值
COUNT(*) 返回表中的所有行數
COUNT(col) 返回指定列中非NULL值的個數
GROUP_CONCAT(col) 返回由屬於一組的列值鏈接組合而成的結果(詳解)
MAX(col) 返回指定列的最大值
MIN(col) 返回指定列的最小值
SUM(col) 返回指定列的所有值之和

回目錄

流程控制函數

函數名 函數作用
CASE WHEN[test1] THEN [result1]…ELSE[default] 如果testN爲真,則返回resultN,否則返回default
CASE [test] WHEN[val1] THEN[result]…ELSE[default]END 如果test和valN相等,則返回resultN,否則返回default
IF(test,t,f) 如果test是真,返回t,否則返回f
IFNULL(arg1,arg2) 如果arg1不是空,返回agr1,否則返回arg2
NULLIF(arg1,arg2) 如果arg1=arg2,返回NULL,否則返回arg1

回目錄

上面的一些總結只是目前瞭解到的,作爲一個學習筆記,還有很多沒有總結,會持續更新。歡迎各位批評指正!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章