三:Mysql函數彙總

前言數據庫

MySQL提供了衆多功能強大、方便易用的函數,使用這些函數,能夠極大地提升用戶對於數據庫的管理效率,從而更加靈活地知足不一樣用戶的需求。本文將MySQL的函數分類並彙總,以便之後用到的時候能夠隨時查看。服務器

 

數學函數網絡

(1)ABS(x)函數

返回x的絕對值加密

(2)PI()spa

返回圓周率π,默認顯示6位小數索引

(3)SQRT(x)字符串

返回非負數的x的二次方根數學

(4)MOD(x,y)效率

返回x被y除後的餘數

(5)CEIL(x)、CEILING(x)

返回不小於x的最小整數

(6)FLOOR(x)

返回不大於x的最大整數

(7)ROUND(x)、ROUND(x,y)

前者返回最接近於x的整數,即對x進行四捨五入;後者返回最接近x的數,其值保留到小數點後面y位,若y爲負值,則將保留到x到小數點左邊y位

(8)SIGN(x)

返回參數x的符號,-1表示負數,0表示0,1表示正數

(9)POW(x,y)和、POWER(x,y)

返回x的y次乘方的值

(10)EXP(x)

返回e的x乘方後的值

(11)LOG(x)

返回x的天然對數,x相對於基數e的對數

(12)LOG10(x)

返回x的基數爲10的對數

(13)RADIANS(x)

返回x由角度轉化爲弧度的值

(14)DEGREES(x)

返回x由弧度轉化爲角度的值

(15)SIN(x)、ASIN(x)

前者返回x的正弦,其中x爲給定的弧度值;後者返回x的反正弦值,x爲正弦

(16)COS(x)、ACOS(x)

前者返回x的餘弦,其中x爲給定的弧度值;後者返回x的反餘弦值,x爲餘弦

(17)TAN(x)、ATAN(x)

前者返回x的正切,其中x爲給定的弧度值;後者返回x的反正切值,x爲正切

(18)COT(x)

返回給定弧度值x的餘切

 

字符串函數

(1)CHAR_LENGTH(str)

計算字符串字符個數

(2)CONCAT(s1,s2,...)

返回鏈接參數產生的字符串,一個或多個待拼接的內容,任意一個爲NULL則返回值爲NULL

(3)CONCAT_WS(x,s1,s2,...)

返回多個字符串拼接以後的字符串,每一個字符串之間有一個x

(4)INSERT(s1,x,len,s2)

返回字符串s1,其子字符串起始於位置x,被字符串s2取代len個字符

(5)LOWER(str)和LCASE(str)、UPPER(str)和UCASE(str)

前二者將str中的字母所有轉換成小寫,後二者將字符串中的字母所有轉換成大寫

(6)LEFT(s,n)、RIGHT(s,n)

前者返回字符串s從最左邊開始的n個字符,後者返回字符串s從最右邊開始的n個字符

(7)LPAD(s1,len,s2)、RPAD(s1,len,s2)

前者返回s1,其左邊由字符串s2填補到len字符長度,假如s1的長度大於len,則返回值被縮短至len字符;前者返回s1,其右邊由字符串s2填補到len字符長度,假如s1的長度大於len,則返回值被縮短至len字符

(8)LTRIM(s)、RTRIM(s)

前者返回字符串s,其左邊全部空格被刪除;後者返回字符串s,其右邊全部空格被刪除

(9)TRIM(s)

返回字符串s刪除了兩邊空格以後的字符串

(10)TRIM(s1 FROM s)

刪除字符串s兩端全部子字符串s1,未指定s1的狀況下則默認刪除空格

(11)REPEAT(s,n)

返回一個由重複字符串s組成的字符串,字符串s的數目等於n

(12)SPACE(n)

返回一個由n個空格組成的字符串

(13)REPLACE(s,s1,s2)

返回一個字符串,用字符串s2替代字符串s中全部的字符串s1

(14)STRCMP(s1,s2)

若s1和s2中全部的字符串都相同,則返回0;根據當前分類次序,第一個參數小於第二個則返回-1,其餘狀況返回1

(15)SUBSTRING(s,n,len)、MID(s,n,len)

兩個函數做用相同,從字符串s中返回一個第n個字符開始、長度爲len的字符串

(16)LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1)

三個函數做用相同,返回子字符串str1在字符串str中的開始位置(從第幾個字符開始)

(17)REVERSE(s)

將字符串s反轉

(18)ELT(N,str1,str2,str3,str4,...)

返回第N個字符串

 

日期和時間函數

(1)CURDATE()、CURRENT_DATE()

將當前日期按照"YYYY-MM-DD"或者"YYYYMMDD"格式的值返回,具體格式根據函數用在字符串或是數字語境中而定

(2)CURRENT_TIMESTAMP()、LOCALTIME()、NOW()、SYSDATE()

這四個函數做用相同,返回當前日期和時間值,格式爲"YYYY_MM-DD HH:MM:SS"或"YYYYMMDDHHMMSS",具體格式根據函數用在字符串或數字語境中而定

(3)UNIX_TIMESTAMP()、UNIX_TIMESTAMP(date)

前者返回一個格林尼治標準時間1970-01-01 00:00:00到如今的秒數,後者返回一個格林尼治標準時間1970-01-01 00:00:00到指定時間的秒數

(4)FROM_UNIXTIME(date)

和UNIX_TIMESTAMP互爲反函數,把UNIX時間戳轉換爲普通格式的時間

(5)UTC_DATE()和UTC_TIME()

前者返回當前UTC(世界標準時間)日期值,其格式爲"YYYY-MM-DD"或"YYYYMMDD",後者返回當前UTC時間值,其格式爲"YYYY-MM-DD"或"YYYYMMDD"。具體使用哪一種取決於函數用在字符串仍是數字語境中

(6)MONTH(date)和MONTHNAME(date)

前者返回指定日期中的月份,後者返回指定日期中的月份的名稱

(7)DAYNAME(d)、DAYOFWEEK(d)、WEEKDAY(d)

DAYNAME(d)返回d對應的工做日的英文名稱,如Sunday、Monday等;DAYOFWEEK(d)返回的對應一週中的索引,1表示週日、2表示週一;WEEKDAY(d)表示d對應的工做日索引,0表示週一,1表示週二

(8)WEEK(d)、WEEKOFYEAD(d)

前者計算日期d是一年中的第幾周,後者計算某一天位於一年中的第幾周

(9)DAYOFYEAR(d)、DAYOFMONTH(d)

前者返回d是一年中的第幾天,後者返回d是一月中的第幾天

(10)YEAR(date)、QUARTER(date)、MINUTE(time)、SECOND(time)

YEAR(date)返回指定日期對應的年份,範圍是1970~2069;QUARTER(date)返回date對應一年中的季度,範圍是1~4;MINUTE(time)返回time對應的分鐘數,範圍是0~59;SECOND(time)返回制定時間的秒值

(11)EXTRACE(type FROM date)

從日期中提取一部分,type能夠是YEAR、YEAR_MONTH、DAY_HOUR、DAY_MICROSECOND、DAY_MINUTE、DAY_SECOND

(12)TIME_TO_SEC(time)

返回以轉換爲秒的time參數,轉換公式爲"3600*小時 + 60*分鐘 + 秒"

(13)SEC_TO_TIME()

和TIME_TO_SEC(time)互爲反函數,將秒值轉換爲時間格式

(14)DATE_ADD(date,INTERVAL expr type)、ADD_DATE(date,INTERVAL expr type)

返回將起始時間加上expr type以後的時間,好比DATE_ADD('2010-12-31 23:59:59', INTERVAL 1 SECOND)表示的就是把第一個時間加1秒

(15)DATE_SUB(date,INTERVAL expr type)、SUBDATE(date,INTERVAL expr type)

返回將起始時間減去expr type以後的時間

(16)ADDTIME(date,expr)、SUBTIME(date,expr)

前者進行date的時間加操做,後者進行date的時間減操做

 

條件判斷函數

(1)IF(expr,v1,v2)

若是expr是TRUE則返回v1,不然返回v2

(2)IFNULL(v1,v2)

若是v1不爲NULL,則返回v1,不然返回v2

(3)CASE expr WHEN v1 THEN r1 [WHEN v2 THEN v2] [ELSE rn] END

若是expr等於某個vn,則返回對應位置THEN後面的結果,若是與全部值都不想等,則返回ELSE後面的rn

 

系統信息函數

(1)VERSION()

查看MySQL版本號

(2)CONNECTION_ID()

查看當前用戶的鏈接數

(3)USER()、CURRENT_USER()、SYSTEM_USER()、SESSION_USER()

查看當前被MySQL服務器驗證的用戶名和主機的組合,通常這幾個函數的返回值是相同的

(4)CHARSET(str)

查看字符串str使用的字符集

(5)COLLATION()

查看字符串排列方式

 

加密函數

(1)PASSWORD(str)

從原明文密碼str計算並返回加密後的字符串密碼,注意這個函數的加密是單向的(不可逆),所以不該將它應用在我的的應用程序中而應該只在MySQL服務器的鑑定系統中使用

(2)MD5(str)

爲字符串算出一個MD5 128比特校驗和,改值以32位十六進制數字的二進制字符串形式返回

(3)ENCODE(str, pswd_str)

使用pswd_str做爲密碼,加密str

(4)DECODE(crypt_str,pswd_str)

使用pswd_str做爲密碼,解密加密字符串crypt_str,crypt_str是由ENCODE函數返回的字符串

 

其餘函數

(1)FORMAT(x,n)

將數字x格式化,並以四捨五入的方式保留小數點後n位,結果以字符串形式返回

(2)CONV(N,from_base,to_base)

不一樣進制數之間的轉換,返回值爲數值N的字符串表示,由from_base進制轉換爲to_base進制

(3)INET_ATON(expr)

給出一個做爲字符串的網絡地址的點地址表示,返回一個表明該地址數值的整數,地址可使4或8比特

(4)INET_NTOA(expr)

給定一個數字網絡地址(4或8比特),返回做爲字符串的該地址的點地址表示

(5)BENCHMARK(count,expr)

重複執行count次表達式expr,它能夠用於計算MySQL處理表達式的速度,結果值一般是0(0只是表示很快,並非沒有速度)。另外一個做用是用它在MySQL客戶端內部報告語句執行的時間

(6)CONVERT(str USING charset)

使用字符集charset表示字符串str

相關文章
相關標籤/搜索