Mysql的庫函數(shù)整理大全(非常詳細(xì)!)
前言
MySQL是一個(gè)流行的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它提供了大量的內(nèi)置庫函數(shù),用于在查詢時(shí)執(zhí)行各種操作。這些函數(shù)可以幫助開發(fā)者在數(shù)據(jù)檢索、轉(zhuǎn)換和處理過程中實(shí)現(xiàn)更復(fù)雜的邏輯。
1 字符串函數(shù)
函數(shù) | 描述 |
---|---|
ASCII(s) | 返回字符串 s 的第一個(gè)字符的 ASCII 碼。 |
CHAR_LENGTH(s) | 返回字符串 s 的字符數(shù) |
CONCAT(s1,s2…sn) | 字符串 s1,s2 等多個(gè)字符串合并為一個(gè)字符串 |
CONCAT_WS(x, s1,s2…sn) | 同 CONCAT(s1,s2,…) 函數(shù),但是每個(gè)字符串之間要加上 x,x 可以是分隔符 |
FIELD(s,s1,s2…) | 返回第一個(gè)字符串 s 在字符串列表(s1,s2…)中的位置 |
FIND_IN_SET(s1,s2) | 返回在字符串s2中與s1匹配的字符串的位置 |
INSERT(s1,x,len,s2) | 字符串 s2 替換 s1 的 x 位置開始長度為 len 的字符串 |
LOCATE(s1,s) | 從字符串 s 中獲取 s1 的開始位置 |
LCASE(s) | 將字符串 s 的所有字母變成小寫字母 |
LEFT(s,n) | 返回字符串 s 的前 n 個(gè)字符 |
LOWER(s) | 將字符串 s 的所有字母變成小寫字母 |
LPAD(s1,len,s2) | 在字符串 s1 的開始處填充字符串 s2,使字符串長度達(dá)到 len |
LTRIM(s) | 去掉字符串 s 開始處的空格 |
MID(s,n,len) | 從字符串 s 的 n 位置截取長度為 len 的子字符串,同 SUBSTRING(s,n,len) |
POSITION(s1 IN s) | 從字符串 s 中獲取 s1 的開始位置 |
REPEAT(s,n) | 將字符串 s 重復(fù) n 次 |
REPLACE(s,s1,s2) | 將字符串 s2 替代字符串 s 中的字符串 s1 |
REVERSE(s) | 將字符串s的順序反過來 |
RIGHT(s,n) | 返回字符串 s 的后 n 個(gè)字符 |
RPAD(s1,len,s2) | 在字符串 s1 的結(jié)尾處添加字符串 s2,使字符串的長度達(dá)到 len |
RTRIM(s) | 去掉字符串 s 結(jié)尾處的空格 |
SPACE(n) | 返回 n 個(gè)空格 |
STRCMP(s1,s2) | 比較字符串 s1 和 s2,如果 s1 與 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1 |
SUBSTR(s, start, length) | 從字符串 s 的 start 位置截取長度為 length 的子字符串 |
SUBSTRING(s, start, length) | 從字符串 s 的 start 位置截取長度為 length 的子字符串,等同于 SUBSTR(s, start, length) |
SUBSTRING_INDEX(s, delimiter, number) | 返回從字符串 s 的第 number 個(gè)出現(xiàn)的分隔符 delimiter 之后的子串。 如果 number 是正數(shù),返回第 number 個(gè)字符左邊的字符串。 如果 number 是負(fù)數(shù),返回第(number 的絕對值(從右邊數(shù)))個(gè)字符右邊的字符串。 |
TRIM(s) | 去掉字符串 s 開始和結(jié)尾處的空格 |
UCASE(s) | 將字符串轉(zhuǎn)換為大寫 |
UPPER(s) | 將字符串轉(zhuǎn)換為大寫 |
2 數(shù)字函數(shù)
函數(shù)名 | 描述 |
---|---|
ABS(x) | 返回 x 的絕對值 |
ACOS(x) | 求 x 的反余弦值(單位為弧度),x 為一個(gè)數(shù)值 |
ASIN(x) | 求反正弦值(單位為弧度),x 為一個(gè)數(shù)值 |
ATAN(x) | 求反正切值(單位為弧度),x 為一個(gè)數(shù)值 |
ATAN2(n, m) | 求反正切值(單位為弧度) |
AVG(expression) | 返回一個(gè)表達(dá)式的平均值,expression 是一個(gè)字段 |
CEIL(x) | 返回大于或等于 x 的最小整數(shù) |
CEILING(x) | 返回大于或等于 x 的最小整數(shù) |
COS(x) | 求余弦值(參數(shù)是弧度) |
COT(x) | 求余切值(參數(shù)是弧度) |
COUNT(expression) | 返回查詢的記錄總數(shù),expression 參數(shù)是一個(gè)字段或者 * 號 |
DEGREES(x) | 將弧度轉(zhuǎn)換為角度 |
n DIV m | 整除,n 為被除數(shù),m 為除數(shù) |
EXP(x) | 返回 e 的 x 次方 |
FLOOR(x) | 返回小于或等于 x 的最大整數(shù) |
GREATEST(expr1, expr2, expr3, …) | 返回列表中的最大值 |
LEAST(expr1, expr2, expr3, …) | 返回列表中的最小值 |
LN | 返回?cái)?shù)字的自然對數(shù),以 e 為底。 |
LOG(x) 或 LOG(base, x) | 返回自然對數(shù)(以 e 為底的對數(shù)),如果帶有 base 參數(shù),則 base 為指定帶底數(shù)。 |
LOG10(x) | 返回以 10 為底的對數(shù) |
LOG2(x) | 返回以 2 為底的對數(shù) |
MAX(expression) | 返回字段 expression 中的最大值 |
MIN(expression) | 返回字段 expression 中的最小值 |
MOD(x,y) | 返回 x 除以 y 以后的余數(shù) |
PI() | 返回圓周率(3.141593) |
POW(x,y) | 返回 x 的 y 次方 |
POWER(x,y) | 返回 x 的 y 次方 |
RADIANS(x) | 將角度轉(zhuǎn)換為弧度 |
RAND() | 返回 0 到 1 的隨機(jī)數(shù) |
ROUND(x [,y]) | 返回離 x 最近的整數(shù),可選參數(shù) y 表示要四舍五入的小數(shù)位數(shù),如果省略,則返回整數(shù)。 |
SIGN(x) | 返回 x 的符號,x 是負(fù)數(shù)、0、正數(shù)分別返回 -1、0 和 1 |
SIN(x) | 求正弦值(參數(shù)是弧度) |
SQRT(x) | 返回x的平方根 |
SUM(expression) | 返回指定字段的總和 |
TAN(x) | 求正切值(參數(shù)是弧度) |
TRUNCATE(x,y) | 返回?cái)?shù)值 x 保留到小數(shù)點(diǎn)后 y 位的值(與 ROUND 最大的區(qū)別是不會(huì)進(jìn)行四舍五入) |
3 日期函數(shù)
函數(shù)名 | 描述 |
---|---|
ADDDATE(d,n) | 計(jì)算起始日期 d 加上 n 天的日期 |
ADDTIME(t,n) | n 是一個(gè)時(shí)間表達(dá)式,時(shí)間 t 加上時(shí)間表達(dá)式 n |
CURDATE() | 返回當(dāng)前日期 |
CURRENT_DATE() | 返回當(dāng)前日期 |
CURRENT_TIME | 返回當(dāng)前時(shí)間 |
CURRENT_TIMESTAMP() | 返回當(dāng)前日期和時(shí)間 |
CURTIME() | 返回當(dāng)前時(shí)間 |
DATE() | 從日期或日期時(shí)間表達(dá)式中提取日期值 |
DATEDIFF(d1,d2) | 計(jì)算日期 d1->d2 之間相隔的天數(shù) |
DATE_ADD(d,INTERVAL expr type) | 計(jì)算起始日期 d 加上一個(gè)時(shí)間段后的日期,type 值可以是: MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUARTER YEAR SECOND_MICROSECOND MINUTE_MICROSECOND MINUTE_SECOND HOUR_MICROSECOND HOUR_SECOND HOUR_MINUTE DAY_MICROSECOND DAY_SECOND DAY_MINUTE DAY_HOUR YEAR_MONTH |
DATE_FORMAT(d,f) | 按表達(dá)式 f的要求顯示日期 d |
DATE_SUB(date,INTERVAL expr type) | 函數(shù)從日期減去指定的時(shí)間間隔。 |
DAY(d) | 返回日期值 d 的日期部分 |
DAYNAME(d) | 返回日期 d 是星期幾,如 Monday,Tuesday |
DAYOFMONTH(d) | 計(jì)算日期 d 是本月的第幾天 |
DAYOFWEEK(d) | 日期 d 今天是星期幾,1 星期日,2 星期一,以此類推 |
DAYOFYEAR(d) | 計(jì)算日期 d 是本年的第幾天 |
EXTRACT(type FROM d) | 從日期 d 中獲取指定的值,type 指定返回的值。 type可取值為: MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUARTER YEAR SECOND_MICROSECOND MINUTE_MICROSECOND MINUTE_SECOND HOUR_MICROSECOND HOUR_SECOND HOUR_MINUTE DAY_MICROSECOND DAY_SECOND DAY_MINUTE DAY_HOUR YEAR_MONTH |
FROM_DAYS(n) | 計(jì)算從 0000 年 1 月 1 日開始 n 天后的日期 |
HOUR(t) | 返回 t 中的小時(shí)值 |
LAST_DAY(d) | 返回給給定日期的那一月份的最后一天 |
LOCALTIME() | 返回當(dāng)前日期和時(shí)間 |
LOCALTIMESTAMP() | 返回當(dāng)前日期和時(shí)間 |
MAKEDATE(year, day-of-year) | 基于給定參數(shù)年份 year 和所在年中的天數(shù)序號 day-of-year 返回一個(gè)日期 |
MAKETIME(hour, minute, second) | 組合時(shí)間,參數(shù)分別為小時(shí)、分鐘、秒 |
MICROSECOND(date) | 返回日期參數(shù)所對應(yīng)的微秒數(shù) |
MINUTE(t) | 返回 t 中的分鐘值 |
MONTHNAME(d) | 返回日期當(dāng)中的月份名稱,如 November |
MONTH(d) | 返回日期d中的月份值,1 到 12 |
NOW() | 返回當(dāng)前日期和時(shí)間 |
PERIOD_ADD(period, number) | 為 年-月 組合日期添加一個(gè)時(shí)段 |
PERIOD_DIFF(period1, period2) | 返回兩個(gè)時(shí)段之間的月份差值 |
QUARTER(d) | 返回日期d是第幾季節(jié),返回 1 到 4 |
SECOND(t) | 返回 t 中的秒鐘值 |
SEC_TO_TIME(s) | 將以秒為單位的時(shí)間 s 轉(zhuǎn)換為時(shí)分秒的格式 |
STR_TO_DATE(string, format_mask) | 將字符串轉(zhuǎn)變?yōu)槿掌?/td> |
SUBDATE(d,n) | 日期 d 減去 n 天后的日期 |
SUBTIME(t,n) | 時(shí)間 t 減去 n 秒的時(shí)間 |
SYSDATE() | 返回當(dāng)前日期和時(shí)間 |
TIME(expression) | 提取傳入表達(dá)式的時(shí)間部分 |
TIME_FORMAT(t,f) | 按表達(dá)式 f 的要求顯示時(shí)間 t |
TIME_TO_SEC(t) | 將時(shí)間 t 轉(zhuǎn)換為秒 |
TIMEDIFF(time1, time2) | 計(jì)算時(shí)間差值 |
TIMESTAMP(expression, interval) | 單個(gè)參數(shù)時(shí),函數(shù)返回日期或日期時(shí)間表達(dá)式;有2個(gè)參數(shù)時(shí),將參數(shù)加和 |
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2) | 計(jì)算時(shí)間差,返回 datetime_expr2 − datetime_expr1 的時(shí)間差 |
TO_DAYS(d) | 計(jì)算日期 d 距離 0000 年 1 月 1 日的天數(shù) |
WEEK(d) | 計(jì)算日期 d 是本年的第幾個(gè)星期,范圍是 0 到 53 |
WEEKDAY(d) | 日期 d 是星期幾,0 表示星期一,1 表示星期二 |
WEEKOFYEAR(d) | 計(jì)算日期 d 是本年的第幾個(gè)星期,范圍是 0 到 53 |
YEAR(d) | 返回年份 |
YEARWEEK(date, mode) | 返回年份及第幾周(0到53),mode 中 0 表示周天,1表示周一,以此類推 |
4 聚合函數(shù)
聚合函數(shù)需要配合MySQL的分組查詢使用
函數(shù)名 | 描述 |
---|---|
max(column) | 查詢指定字段值中的最大值。 |
min(column) | 查詢指定字段值中的最小值。 |
count(column) | 統(tǒng)計(jì)查詢結(jié)果中的行數(shù)。 |
sum(column) | 求和指定字段的所有值。 |
avg(column) | 對指定字段的所有值,求出平均值。 |
group_concat(column) | 返回指定字段所有值組合成的結(jié)果 |
distinct(column) | 對于查詢結(jié)果中的指定的字段去重。 |
5 控制流程函數(shù)
跟其他語言的控制流程類型,成立走這個(gè)分支,不成立走其他的分支
函數(shù)名 | 描述 |
---|---|
if(expr,r1,r2) | expr是表達(dá)式,如果成立返回r1,否則返回r2 |
ifnull(v,r) | 如果v 不為null 則返回v ,否則返回r 。 |
nullif(v1,v2) | 如果v1 == v2 ,則返回null ,如果不相等則返回V1 |
6 加密函數(shù)
MySQL自帶了對密碼進(jìn)行加密的函數(shù),支持多種對稱加密和非對稱加密的方式
函數(shù)名 | 描述 |
---|---|
password(str) | 將str 字符串以數(shù)據(jù)庫密碼的形式加密 |
md5(str) | 對str 字符串以MD5 不可逆算法模式加密 |
encode(str,key) | 通過key 密鑰對str 字符串進(jìn)行加密(對稱加密算法)。 |
decode(str,key) | 通過key 密鑰對str 字符串進(jìn)行解密。 |
aes_encrypt(str,key) | 通過key 密鑰對str 字符串,以AES 算法進(jìn)行加密。 |
aes_decrypt(str,key) | 通過key 密鑰對str 字符串,以AES 算法進(jìn)行解密。 |
sha(str) | 計(jì)算str 字符串的散列算法校驗(yàn)值。 |
encrypt(str,salt) | 使用salt 鹽值對str 字符串進(jìn)行加密。 |
decrypt(str,salt) | 使用salt 鹽值對str 字符串進(jìn)行解密。 |
總結(jié)
到此這篇關(guān)于Mysql的庫函數(shù)整理大全的文章就介紹到這了,更多相關(guān)Mysql庫函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mysql實(shí)驗(yàn)之使用explain分析索引的走向
索引是mysql的必須要掌握的技能,同時(shí)也是提供mysql查詢效率的手段。通過以下的一個(gè)實(shí)驗(yàn)可以理解?mysql的索引規(guī)則,同時(shí)也可以不斷的來優(yōu)化sql語句2018-01-01Mysql深入探索之Explain執(zhí)行計(jì)劃詳析
這篇文章主要給大家介紹了關(guān)于Mysql深入探索之Explain執(zhí)行計(jì)劃的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08MySQL通過日志恢復(fù)數(shù)據(jù)的操作步驟
在MySQL中恢復(fù)誤刪除的數(shù)據(jù)是一個(gè)常見但復(fù)雜的問題,具體的方法取決于幾個(gè)因素,包括您是否有備份、使用的是哪種存儲(chǔ)引擎(如InnoDB或MyISAM)、以及您的數(shù)據(jù)庫配置等,本文給大家介紹了MySQL通過日志恢復(fù)數(shù)據(jù)的操作步驟,需要的朋友可以參考下2024-12-12mysql too many open connections問題解決方法
這篇文章主要介紹了mysql too many open connections問題解決方法,其實(shí)是max_connections配置問題導(dǎo)致,它必須在[mysqld]下面才會(huì)生效,需要的朋友可以參考下2014-05-05win10 mysql 5.6.35 winx64免安裝版配置教程
這篇文章主要為大家詳細(xì)介紹了win10 mysql 5.6.35 winx64免安裝版配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05