1. 程式人生 > >資料庫學習總結(五)——MySQL函式彙總

資料庫學習總結(五)——MySQL函式彙總

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轉化為另一種型別