更新時間:2021-01-12 17:47:24 來源:動力節(jié)點 瀏覽2105次
為了簡化操作,MySQL提供了大量的函數(shù)給開發(fā)人員使用(比如你想輸入當(dāng)前時間,可以調(diào)用now()函數(shù))。通俗點講,MySQL中的函數(shù)相當(dāng)于java中的方法,將一組邏輯語句封裝在方法體中,對外暴露方法名 ,隱藏了實現(xiàn)細(xì)節(jié)的同時也提高代碼的可重用性。MySQL函數(shù)可以出現(xiàn)在插入語句的values()中,更新語句中,刪除語句中,查詢語句及其子句中。本文我們就來為大家介紹MySQL常用函數(shù)。
1.數(shù)學(xué)函數(shù)
ABS(x):返回x的絕對值
BIN(x):返回x的二進(jìn)制
PI():返回圓周率π,默認(rèn)顯示6位小數(shù)
SQRT(x):返回非負(fù)數(shù)的x的二次方根
MOD(x,y):返回x被y除后的余
CEIL(x)、CEILING(x):返回不小于x的最小整數(shù)
FLOOR(x):返回不大于x的最大整數(shù)
GREATEST(x1,x2,...,xn):返回集合中最大的值
LEAST(x1,x2,...,xn):返回集合中最小的值
ROUND(x)、ROUND(x,y):前者返回最接近于x的整數(shù),即對x進(jìn)行四舍五入;后者返回最接近x的數(shù),其值保留到小數(shù)點后面y位,若y為負(fù)值,則將保留到x到小數(shù)點左邊y位
SIGN(x):返回參數(shù)x的符號,-1表示負(fù)數(shù),0表示0,1表示正數(shù)
POW(x,y)、POWER(x,y):返回x的y次乘方的值
EXP(x):返回e的x乘方后的值
LN(x):返回x的自然對數(shù)
LOG(x,y):返回x的以y為底的對數(shù)
LOG10(x):返回x的基數(shù)為10的對數(shù)
RADIANS(x):返回x由角度轉(zhuǎn)化為弧度的值
DEGREES(x):返回x由弧度轉(zhuǎn)化為角度的值
SIN(x)、ASIN(x):前者返回x的正弦,其中x為給定的弧度值;后者返回x的反正弦值,x為正弦
COS(x)、ACOS(x):前者返回x的余弦,其中x為給定的弧度值;后者返回x的反余弦值,x為余弦
TAN(x)、ATAN(x):前者返回x的正切,其中x為給定的弧度值;后者返回x的反正切值,x為正切
COT(x):返回給定弧度值x的余切
RAND():返回 0 到 1 內(nèi)的隨機(jī)值,可以通過提供一個參數(shù)(種子)使RAND()隨機(jī)數(shù)生成器生成一個指定的值
TRUNCATE(x,y):返回數(shù)字x截短為y位小數(shù)的結(jié)果
2.聚合函數(shù)
AVG(col):返回指定列的平均值
COUNT(col):返回指定列中非NULL值的個數(shù)
MIN(col):返回指定列的最小值
MAX(col):返回指定列的最大值
SUM(col):返回指定列的所有值之和
GROUP_CONCAT(col):返回由屬于一組的列值連接組合而成的結(jié)果
3.字符串函數(shù)
STR_TO_DATE(str,fmt):字符串轉(zhuǎn)時間,fmt 日期格式見下方
LENGTH(str):計算字符串字符個數(shù)
CONCAT(s1,s2,...):返回連接參數(shù)產(chǎn)生的字符串,一個或多個待拼接的內(nèi)容,任意一個為NULL則返回值為NULL
CONCAT_WS(x,s1,s2,...):返回多個字符串拼接之后的字符串,每個字符串之間有一個x
INSERT(s1,x,len,s2):返回字符串s1,其子字符串起始于位置x,被字符串s2取代len個字符
LOWER(str)和LCASE(str)、UPPER(str)和UCASE(str):前兩者將str中的字母全部轉(zhuǎn)換成小寫,后兩者將字符串中的字母全部轉(zhuǎn)換成大寫
LEFT(s,n)、RIGHT(s,n):前者返回字符串s從最左邊開始的n個字符,后者返回字符串s從最右邊開始的n個字符
LPAD(s1,len,s2)、RPAD(s1,len,s2):前者返回s1,其左邊由字符串s2填補(bǔ)到len字符長度,假如s1的長度大于len,則返回值被縮短至len字符;前者返回s1,其右邊由字符串s2填補(bǔ)到len字符長度,假如s1的長度大于len,則返回值被縮短至len字符
LTRIM(s)、RTRIM(s):前者返回字符串s,其左邊所有空格被刪除;后者返回字符串s,其右邊所有空格被刪除
TRIM(s):返回字符串s刪除了兩邊空格之后的字符串
TRIM(s1 FROM s):刪除字符串s兩端所有子字符串s1,未指定s1的情況下則默認(rèn)刪除空格
REPEAT(s,n):返回一個由重復(fù)字符串s組成的字符串,字符串s的數(shù)目等于n
SPACE(n):返回一個由n個空格組成的字符串
REPLACE(s,s1,s2):返回一個字符串,用字符串s2替代字符串s中所有的字符串s1
STRCMP(s1,s2):若s1和s2中所有的字符串都相同,則返回0;根據(jù)當(dāng)前分類次序,第一個參數(shù)小于第二個則返回-1,其他情況返回1
LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1):三個函數(shù)作用相同,返回子字符串str1在字符串str中的開始位置(從第幾個字符開始)
REVERSE(s):將字符串s反轉(zhuǎn)
ELT(N,str1,str2,str3,str4,...):返回第N個字符串
CONVERT(str USING charset):使用字符集charset表示字符串str
4.日期時間函數(shù)
CURDATE()、CURRENT_DATE():將當(dāng)前日期按照"YYYY-MM-DD"或者"YYYYMMDD"格式的值返回,具體格式根據(jù)函數(shù)用在字符串或是數(shù)字語境中而定
CURRENT_TIMESTAMP()、LOCALTIME()、NOW()、SYSDATE():這四個函數(shù)作用相同,返回當(dāng)前日期和時間值,格式為"YYYY_MM-DD HH:MM:SS"或"YYYYMMDDHHMMSS",具體格式根據(jù)函數(shù)用在字符串或數(shù)字語境中而定
FROM_UNIXTIME(date):和UNIX_TIMESTAMP互為反函數(shù),把UNIX時間戳轉(zhuǎn)換為普通格式的時間
MONTH(date)、MONTHNAME(date):前者返回指定日期中的月份,后者返回指定日期中的月份的名稱
DAYNAME(d)、DAYOFWEEK(d)、WEEKDAY(d):DAYNAME(d)返回d對應(yīng)的工作日的英文名稱,如Sunday、Monday等;DAYOFWEEK(d)返回的對應(yīng)一周中的索引,1表示周日、2表示周一;WEEKDAY(d)表示d對應(yīng)的工作日索引,0表示周一,1表示周二
WEEK(d)、WEEKOFYEAD(d):前者計算日期d是一年中的第幾周,后者計算某一天位于一年中的第幾周
DAYOFYEAR(d)、DAYOFMONTH(d):前者返回d是一年中的第幾天,后者返回d是一月中的第幾天
YEAR(date)、QUARTER(date)、MINUTE(time)、SECOND(time):YEAR(date)返回指定日期對應(yīng)的年份,范圍是19702069;QUARTER(date)返回date對應(yīng)一年中的季度,范圍是14;MINUTE(time)返回time對應(yīng)的分鐘數(shù),范圍是0~59;SECOND(time)返回制定時間的秒值
EXTRACE(type FROM date):從日期中提取一部分,type可以是YEAR、YEAR_MONTH、DAY_HOUR、DAY_MICROSECOND、DAY_MINUTE、DAY_SECOND
TIME_TO_SEC(time):返回以轉(zhuǎn)換為秒的time參數(shù),轉(zhuǎn)換公式為"3600*小時 + 60*分鐘 + 秒
SEC_TO_TIME():和TIME_TO_SEC(time)互為反函數(shù),將秒值轉(zhuǎn)換為時間格式
DATE_SUB(date,INTERVAL expr type)、SUBDATE(date,INTERVAL expr type):返回將起始時間減去expr type之后的時間
ADDTIME(date,expr)、SUBTIME(date,expr):前者進(jìn)行date的時間加操作,后者進(jìn)行date的時間減操作
5.格式化函數(shù)
DATE_FORMAT(date,fmt):依照字符串fmt格式化日期date值
FORMAT(x,y):將數(shù)字 x 格式化,并以四舍五入的方式保留小數(shù)點后 y 位,結(jié)果以字符串形式返回
INET_ATON(ip):返回IP地址的數(shù)字表示
INET_NTOA(num):返回數(shù)字所代表的IP地址
TIME_FORMAT(time,fmt):依照字符串fmt格式化時間time值
以上就是為大家介紹的MySQL常用函數(shù),總的來說,數(shù)量很龐大,但是都是我們在日常操作和使用MySQL數(shù)據(jù)庫中可能用到的,對于我們使用MySQL數(shù)據(jù)庫有一定的幫助,在本站的MySQL教程中還有許多不經(jīng)常使用的MySQL函數(shù)的介紹,感興趣的小伙伴可以在本站的MySQL教程中學(xué)習(xí)。