資料庫學習總結(五)——MySQL函式彙總
阿新 • • 發佈:2019-01-07
MySQL常用函式
這篇部落格是我上課老師給的一個函式彙總,讓我們自己學習用的~
整理了一下,分享出來
大家有需要的可以參考一下
數學函式
函式 | 說明 |
---|---|
ABS(X) | 返回X的絕對值 |
PI() | 返回圓周率,預設顯示小數點後6位 |
SQRT(X) | 返回X的平方根 |
MOD(X, Y) | 返回X被Y除後的餘數 |
CEIL(X) | 返回不小於X的最小整數值 |
CEILING(X) | 返回不小於X的最小整數值 |
FLOOR(X) | 返回不大於X的最大整數值 |
RAND() | 產生隨機數 |
RAND(X) | 產生隨機數,若X引數相同,多次執行,產生的隨機數相同 |
ROUND(X) | 返回對X進行四捨五入操作後的整數值 |
ROUND(X, Y) | 對X進行四捨五入操作,其值保留到小數點後Y位,若Y為負,則保留到小數點左邊Y位 |
SIGN(X) | 返回X的符號,負則返回-1,零則返回0,正則返回1 |
POW(X, Y) | 返回X的Y次冪 |
POWER(X, Y) | 返回X的Y次冪 |
EXP(X) | 返回e的X次冪 |
LOG(X) | 返回X的自然對數 |
LOG10(X) | 返回X的基數為10的對數 |
RADIANS(X) | 角度轉化為弧度 |
DEGREES(X) | 弧度轉化為角度 |
SIN(X) | 正弦函式 |
ASIN(X) | 正弦函式的反函式 |
COS(X) | 餘弦函式 |
ACOS(X) | 餘弦函式的反函式 |
TAN(X) | 正切函式 |
ATAN(X) | 正切函式的反函式 |
COT(X) | 餘切函式 |
還有一個函式:TRUNCATE(X, Y)返回X被截掉小數點後Y位的數字,若Y為0,則截掉小數部分,若Y為負,X小數點左邊|y|位置0,例如:
TRUNCATE(1.21, 1) = 1.2TRUNCATE(1.21, 0) = 1TRUNCATE(31.21, -1) = 30
字串函式
函式 | 說明 |
---|---|
CHAR_LENGTH(str) | 計算字串str的字元個數 |
CONCAT(s1, s2, …) | 拼接s1, s2, … |
CONCAT_WS(x, s1, s2, …) | 使用分隔符x將s1, s2, …拼接起來 |
INSERT(s1, x, len, s2) | 返回字串s1,其子字串起始於x位置和被字串s2取代的len字元 |
LOWER(str) | 大寫字母轉為小寫 |
LCASE(str) | 大寫字母轉為小寫 |
UPPER(str) | 小寫字母轉為大寫 |
UCASE(str) | 小寫字母轉為大寫 |
LEFT(s, n) | 返回字串s左邊n個字元組成的子串 |
RIGHT(s, n) | 返回字串s右邊n個字元組成的子串 |
LPAD(s1, len, s2) | 返回字串s1,其左邊被字串s2填補至len字元長度 |
RPAD(s1, len, s2) | 返回字串s1,其右邊被字串s2填補至len字元長度 |
LTRIM(s) | 刪除字串s左端的空格 |
RTRIM(s) | 刪除字串s右端的空格 |
TRIM(s) | 刪除字串s兩端的空格 |
TRIM(s1 FROM s) | 刪除字串s中兩端所有的字串s1,未指定s1時預設為空格 |
REPEEAT(s, n) | 返回n個字串s拼接成的字串 |
SPACE(n) | 返回一個由n個空格組成的字串 |
REPLACE(s, s1, s2) | 使用字串s2替換s中所有的s1 |
STRCMP(s1, s2) | 字串比較 |
SUBSTRING(s, n, len) | 返回字串s中從n開始長度為len的子串 |
MID(s, n, len) | 返回字串s中從n開始長度為len的子串 |
LOCATE(str1, str) | 返回str1在字串str中的位置 |
POSITION(str1 IN str) | 返回str1在字串str中的位置 |
INSTR(str, str1) | 返回str1在字串str中的位置 |
REVERSE(s) | 返回反轉後的字串 |
ELT(n, s1, s2, …) | 返回s1, s2, …中第n個字串 |
FIELD(s, s1, s2, …) | 返回字串s在s1, s2, …中所在的位置 |
FIND_IN_SET(s1, s2) | 返回字串s1在字串列表s2中的位置 |
MAKE_SET(x, s1, s2, …) | 返回由x的二進位制數指定的相應位的字串組成的字串 |
日期和時間函式
函式 | 說明 |
---|---|
CURDATE() | 返回當前日期 |
CURRENT_DATE() | 返回當前日期 |
CURTIME() | 返回當前時間 |
CURRENT_TIME() | 返回當前時間 |
CURRENT_TIMESTAMP() | 返回當前日期和時間組合 |
LOCALTIME() | 返回當前日期和時間組合 |
NOW() | 返回當前日期和時間組合 |
SYSDATE() | 返回當前日期和時間組合 |
UNIX_TIMESTAMP() | 返回Unix時間戳,1970年之後的秒數 |
UNIX_TIMESTAMP(date) | 返回Unix時間戳,1970年之後的秒數 |
FROM_UNIXTIME(date) | 把Unix格式時間戳轉化為普通格式時間 |
UTC_DATE() | 返回當前UTC日期值(世界標準時間) |
UTC_TIME() | 返回當前UTC時間值 |
MONTH(date) | 返回date對應的月份,1-12 |
MONTHNAME(date) | 返回日期date對應月份的英文名 |
DAYNAME(d) | 返回日期d對應的英文名稱,例如Sunday,Monday等 |
DAYOFWEEK(d) | 返回日期d對應一週中的第幾天,1表示週日,2表示週一,7表示週六 |
WEEKDAY(d) | 返回日期d對應一週中的第幾天,0表示週一,1表示週二,6表示週日 |
WEEK(d) | 日期d是一年中的第幾周 |
WEEK(d, mod) | 返回日期d是一年中的第幾周,mod可以決定一週是從周幾開始的 |
WEEKOFYEAR(d) | 返回某天位於一年中的第幾周 |
DAYOFYEAR(d) | 返回日期d是一年中的第幾天 |
DAYOFMONTH(d) | 返回日期d是當月中的第幾天 |
YEAR(date) | 返回date對應的年份 |
QUARTER(date) | 返回date在一年中的第幾季度 |
MINUTE(time) | 返回time中的分鐘數 |
SECOND(time) | 返回time中的秒數 |
EXTRACT(type FROM date) | 提取date中的一部分 |
TIME_TO_SEC(time) | 將time轉化為秒數 |
SEC_TO_TIME(seconds) | 將秒數轉為時分秒形式的時間 |
DATE_FORMAT(date, format) | 將日期時間格式化 |
計算日期和時間的函式DATE_ADD(),ADDDATE(),DATE_SUB(),SUBDATE(),ADDTIME(),SUBTIME(),DATE_DIFF().
條件判斷函式、加密解密函式、系統資訊函式
函式 | 說明 |
---|---|
IF(expr, v1, v2) | 如果表示式expr是TRUE,返回v1;否則返回v2 |
IFNULL(v1, v2) | 如果v1不為NULL,返回v1;否則返回v2 |
CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END | case語句 |
VERSION() | 返回MySQL伺服器版本 |
CONNECTION_ID() | 返回Mysql伺服器當前連線的次數 |
DATABASE() | 返回使用utf8字符集的預設資料庫名 |
SCHEMA() | 返回使用utf8字符集的預設資料庫名 |
USER() | 返回當前被MYsql伺服器驗證的使用者名稱和主機名組合 |
CURRENT_USER() | 返回當前被MYsql伺服器驗證的使用者名稱和主機名組合 |
SYSTEM_USER() | 返回當前被MYsql伺服器驗證的使用者名稱和主機名組合 |
SESSION_USER() | 返回當前被MYsql伺服器驗證的使用者名稱和主機名組合 |
CHARSET(str) | 返回字串str使用的字符集 |
COLLATION(str) | 返回字串str的字元排列方式 |
LAST_INSERT_ID() | 返回最後一個INSERT或UPDATE或AUTO_INCREMENT列設定的第一個發生的值 |
PASSWORD(str) | 加密函式 |
MD5(str) | 計算字串的MD5 128位元校驗和 |
ENCODE(str, pswd_str) | 加密函式 |
DECODE(crypt_str, pswd_str) | 解密函式 |
FORMAT(x, n) | 將數值x保留小數點後n位,結果以字串形式返回 |
CONV(n, from_basem, to_base) | 將數值n,從一種進位制轉化為另一種進位制 |
INET_ATON(expr) | 將字串網路地址轉化為整型 |
INET_NTOA(expr) | 將數值網路地址轉化為字串網路地址 |
GET_LOCK(str, timeout) | 獲取一個鎖 |
RELEASE_LOCK(str) | 釋放鎖 |
IS_FREE_LOCK(str) | 檢查鎖str是否可以被使用 |
IS_USED_LOCK(str) | 檢查鎖str是否正在被使用 |
BENCHMARK(count, expr) | 重複執行表示式expr,執行count次 |
CONVERT(str USING type) | 轉化字串str的編碼格式 |
CAST(x AS type) | 將x轉化為type型別 |
CONVERT(x, type) | 將一個型別的x轉化為另一種型別 |