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