首頁  >  文章  >  資料庫  >  常用MySQL函數有哪些?

常用MySQL函數有哪些?

coldplay.xixi
coldplay.xixi原創
2020-06-29 15:15:474095瀏覽

常用MySQL函數有數學函數、字串函數、日期和時間函數、條件判斷函數、系統資訊函數、加密函數、格式化函數和其他一些函數,透過這些函數,可以簡化使用者的操作。

常用MySQL函數有哪些?

常用MySQL函數有:

一、數學函數

(1)ABS(x)

#回傳x的絕對值

(2)PI()

#傳回圓周率π,預設顯示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函數傳回的字串

 

2、其他函數

(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

相關學習推薦:mysql影片教學

#

以上是常用MySQL函數有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn