Mysql的庫函數(shù)整理大全(非常詳細!)
前言
MySQL是一個流行的開源關系型數(shù)據(jù)庫管理系統(tǒng),它提供了大量的內(nèi)置庫函數(shù),用于在查詢時執(zhí)行各種操作。這些函數(shù)可以幫助開發(fā)者在數(shù)據(jù)檢索、轉換和處理過程中實現(xiàn)更復雜的邏輯。
1 字符串函數(shù)
| 函數(shù) | 描述 |
|---|---|
| ASCII(s) | 返回字符串 s 的第一個字符的 ASCII 碼。 |
| CHAR_LENGTH(s) | 返回字符串 s 的字符數(shù) |
| CONCAT(s1,s2…sn) | 字符串 s1,s2 等多個字符串合并為一個字符串 |
| CONCAT_WS(x, s1,s2…sn) | 同 CONCAT(s1,s2,…) 函數(shù),但是每個字符串之間要加上 x,x 可以是分隔符 |
| FIELD(s,s1,s2…) | 返回第一個字符串 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 個字符 |
| LOWER(s) | 將字符串 s 的所有字母變成小寫字母 |
| LPAD(s1,len,s2) | 在字符串 s1 的開始處填充字符串 s2,使字符串長度達到 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 重復 n 次 |
| REPLACE(s,s1,s2) | 將字符串 s2 替代字符串 s 中的字符串 s1 |
| REVERSE(s) | 將字符串s的順序反過來 |
| RIGHT(s,n) | 返回字符串 s 的后 n 個字符 |
| RPAD(s1,len,s2) | 在字符串 s1 的結尾處添加字符串 s2,使字符串的長度達到 len |
| RTRIM(s) | 去掉字符串 s 結尾處的空格 |
| SPACE(n) | 返回 n 個空格 |
| 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 個出現(xiàn)的分隔符 delimiter 之后的子串。 如果 number 是正數(shù),返回第 number 個字符左邊的字符串。 如果 number 是負數(shù),返回第(number 的絕對值(從右邊數(shù)))個字符右邊的字符串。 |
| TRIM(s) | 去掉字符串 s 開始和結尾處的空格 |
| UCASE(s) | 將字符串轉換為大寫 |
| UPPER(s) | 將字符串轉換為大寫 |
2 數(shù)字函數(shù)
| 函數(shù)名 | 描述 |
|---|---|
| ABS(x) | 返回 x 的絕對值 |
| ACOS(x) | 求 x 的反余弦值(單位為弧度),x 為一個數(shù)值 |
| ASIN(x) | 求反正弦值(單位為弧度),x 為一個數(shù)值 |
| ATAN(x) | 求反正切值(單位為弧度),x 為一個數(shù)值 |
| ATAN2(n, m) | 求反正切值(單位為弧度) |
| AVG(expression) | 返回一個表達式的平均值,expression 是一個字段 |
| CEIL(x) | 返回大于或等于 x 的最小整數(shù) |
| CEILING(x) | 返回大于或等于 x 的最小整數(shù) |
| COS(x) | 求余弦值(參數(shù)是弧度) |
| COT(x) | 求余切值(參數(shù)是弧度) |
| COUNT(expression) | 返回查詢的記錄總數(shù),expression 參數(shù)是一個字段或者 * 號 |
| DEGREES(x) | 將弧度轉換為角度 |
| n DIV m | 整除,n 為被除數(shù),m 為除數(shù) |
| EXP(x) | 返回 e 的 x 次方 |
| FLOOR(x) | 返回小于或等于 x 的最大整數(shù) |
| GREATEST(expr1, expr2, expr3, …) | 返回列表中的最大值 |
| LEAST(expr1, expr2, expr3, …) | 返回列表中的最小值 |
| LN | 返回數(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) | 將角度轉換為弧度 |
| RAND() | 返回 0 到 1 的隨機數(shù) |
| ROUND(x [,y]) | 返回離 x 最近的整數(shù),可選參數(shù) y 表示要四舍五入的小數(shù)位數(shù),如果省略,則返回整數(shù)。 |
| SIGN(x) | 返回 x 的符號,x 是負數(shù)、0、正數(shù)分別返回 -1、0 和 1 |
| SIN(x) | 求正弦值(參數(shù)是弧度) |
| SQRT(x) | 返回x的平方根 |
| SUM(expression) | 返回指定字段的總和 |
| TAN(x) | 求正切值(參數(shù)是弧度) |
| TRUNCATE(x,y) | 返回數(shù)值 x 保留到小數(shù)點后 y 位的值(與 ROUND 最大的區(qū)別是不會進行四舍五入) |
3 日期函數(shù)
| 函數(shù)名 | 描述 |
|---|---|
| ADDDATE(d,n) | 計算起始日期 d 加上 n 天的日期 |
| ADDTIME(t,n) | n 是一個時間表達式,時間 t 加上時間表達式 n |
| CURDATE() | 返回當前日期 |
| CURRENT_DATE() | 返回當前日期 |
| CURRENT_TIME | 返回當前時間 |
| CURRENT_TIMESTAMP() | 返回當前日期和時間 |
| CURTIME() | 返回當前時間 |
| DATE() | 從日期或日期時間表達式中提取日期值 |
| DATEDIFF(d1,d2) | 計算日期 d1->d2 之間相隔的天數(shù) |
| DATE_ADD(d,INTERVAL expr type) | 計算起始日期 d 加上一個時間段后的日期,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) | 按表達式 f的要求顯示日期 d |
| DATE_SUB(date,INTERVAL expr type) | 函數(shù)從日期減去指定的時間間隔。 |
| DAY(d) | 返回日期值 d 的日期部分 |
| DAYNAME(d) | 返回日期 d 是星期幾,如 Monday,Tuesday |
| DAYOFMONTH(d) | 計算日期 d 是本月的第幾天 |
| DAYOFWEEK(d) | 日期 d 今天是星期幾,1 星期日,2 星期一,以此類推 |
| DAYOFYEAR(d) | 計算日期 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) | 計算從 0000 年 1 月 1 日開始 n 天后的日期 |
| HOUR(t) | 返回 t 中的小時值 |
| LAST_DAY(d) | 返回給給定日期的那一月份的最后一天 |
| LOCALTIME() | 返回當前日期和時間 |
| LOCALTIMESTAMP() | 返回當前日期和時間 |
| MAKEDATE(year, day-of-year) | 基于給定參數(shù)年份 year 和所在年中的天數(shù)序號 day-of-year 返回一個日期 |
| MAKETIME(hour, minute, second) | 組合時間,參數(shù)分別為小時、分鐘、秒 |
| MICROSECOND(date) | 返回日期參數(shù)所對應的微秒數(shù) |
| MINUTE(t) | 返回 t 中的分鐘值 |
| MONTHNAME(d) | 返回日期當中的月份名稱,如 November |
| MONTH(d) | 返回日期d中的月份值,1 到 12 |
| NOW() | 返回當前日期和時間 |
| PERIOD_ADD(period, number) | 為 年-月 組合日期添加一個時段 |
| PERIOD_DIFF(period1, period2) | 返回兩個時段之間的月份差值 |
| QUARTER(d) | 返回日期d是第幾季節(jié),返回 1 到 4 |
| SECOND(t) | 返回 t 中的秒鐘值 |
| SEC_TO_TIME(s) | 將以秒為單位的時間 s 轉換為時分秒的格式 |
| STR_TO_DATE(string, format_mask) | 將字符串轉變?yōu)槿掌?/td> |
| SUBDATE(d,n) | 日期 d 減去 n 天后的日期 |
| SUBTIME(t,n) | 時間 t 減去 n 秒的時間 |
| SYSDATE() | 返回當前日期和時間 |
| TIME(expression) | 提取傳入表達式的時間部分 |
| TIME_FORMAT(t,f) | 按表達式 f 的要求顯示時間 t |
| TIME_TO_SEC(t) | 將時間 t 轉換為秒 |
| TIMEDIFF(time1, time2) | 計算時間差值 |
| TIMESTAMP(expression, interval) | 單個參數(shù)時,函數(shù)返回日期或日期時間表達式;有2個參數(shù)時,將參數(shù)加和 |
| TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2) | 計算時間差,返回 datetime_expr2 − datetime_expr1 的時間差 |
| TO_DAYS(d) | 計算日期 d 距離 0000 年 1 月 1 日的天數(shù) |
| WEEK(d) | 計算日期 d 是本年的第幾個星期,范圍是 0 到 53 |
| WEEKDAY(d) | 日期 d 是星期幾,0 表示星期一,1 表示星期二 |
| WEEKOFYEAR(d) | 計算日期 d 是本年的第幾個星期,范圍是 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)計查詢結果中的行數(shù)。 |
| sum(column) | 求和指定字段的所有值。 |
| avg(column) | 對指定字段的所有值,求出平均值。 |
| group_concat(column) | 返回指定字段所有值組合成的結果 |
| distinct(column) | 對于查詢結果中的指定的字段去重。 |
5 控制流程函數(shù)
跟其他語言的控制流程類型,成立走這個分支,不成立走其他的分支
| 函數(shù)名 | 描述 |
|---|---|
| if(expr,r1,r2) | expr是表達式,如果成立返回r1,否則返回r2 |
| ifnull(v,r) | 如果v不為null則返回v,否則返回r。 |
| nullif(v1,v2) | 如果v1 == v2,則返回null,如果不相等則返回V1 |
6 加密函數(shù)
MySQL自帶了對密碼進行加密的函數(shù),支持多種對稱加密和非對稱加密的方式
| 函數(shù)名 | 描述 |
|---|---|
| password(str) | 將str字符串以數(shù)據(jù)庫密碼的形式加密 |
| md5(str) | 對str字符串以MD5不可逆算法模式加密 |
| encode(str,key) | 通過key密鑰對str字符串進行加密(對稱加密算法)。 |
| decode(str,key) | 通過key密鑰對str字符串進行解密。 |
| aes_encrypt(str,key) | 通過key密鑰對str字符串,以AES算法進行加密。 |
| aes_decrypt(str,key) | 通過key密鑰對str字符串,以AES算法進行解密。 |
| sha(str) | 計算str字符串的散列算法校驗值。 |
| encrypt(str,salt) | 使用salt鹽值對str字符串進行加密。 |
| decrypt(str,salt) | 使用salt鹽值對str字符串進行解密。 |
總結
到此這篇關于Mysql的庫函數(shù)整理大全的文章就介紹到這了,更多相關Mysql庫函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mysql too many open connections問題解決方法
這篇文章主要介紹了mysql too many open connections問題解決方法,其實是max_connections配置問題導致,它必須在[mysqld]下面才會生效,需要的朋友可以參考下2014-05-05
win10 mysql 5.6.35 winx64免安裝版配置教程
這篇文章主要為大家詳細介紹了win10 mysql 5.6.35 winx64免安裝版配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05

