mysql mysql經常使用的經常使用函數

1. 數學函數

函 數 做 用
ABS(x) 返回x的絕對值
CEIL(x),CEILIN(x) 返回不小於x的最小整數值
FLOOR(x) 返回不大於x的最大整數值
RAND() 返回0~1的隨機數
RAND(x) 返回0~1的隨機數,x值相同返回時返回的隨機數相同
SIGN(x) 返回參數做爲-一、0、1的符號,該符號取決於x的值爲負、零或者正
PI() 返回圓周率PI,默認顯示小數位數是7位,mysql內部會使用徹底雙精度值
TRUNCATE(x,y) 返回數值x保留到小數點後y位值
ROUND(x) 返回離x最近的整數
ROUND(x,y) 保留x小數點後y位的值,但截斷時要進行四捨五入
POW(x,y),POWER(x,y) 返回x的y乘方的結果
SQRT(x) 返回非負數x的二次方根
EXP(x) 返回e(天然對數的底)的x乘方後的值
MOD(x,y) 返回x除以y之後的餘數
LOG(x) 返回x的基數爲2的對數
LOG10(x) 返回x的基數爲10的對數
RADIANS(x) 將角度轉換爲弧度
DEGREES(x) 將弧度轉換爲角度
SIN(x) 返回x的正弦,其中x在弧度中被給定
ASIN(x) 返回x的反正弦,即正弦爲x的值。x不在-1~1的話就返回null
COS(x) 返回x的餘弦,其中x在弧度中被給定
ACOS(x) 返回x的反餘弦,即餘弦爲x的值。x不在-1~1的話就返回null
TAN(x) 返回反正切值,即正切爲x的值
ATAN(x),ATAN(x,y) 返回兩個變量x及y的反正切。
COT(x) 返回x的餘切

2. 字符串函數

函 數 做 用
CHAR_LENGTH(s) 返回字符串s的字符數(用於查詢字符串長度)
LENGTH(s) 返回字符串的字節數
CONCAT(s1,s2..) 將幾個字符串拼接起來,若一個爲null則返回null
CONCAT_WS(x,s1,s2..) 同concat(s1,s2..)函數,可是每一個字符串拼接的中要加上x
INSERT(s1,x,len,s2) 將字符串s2替換s1的x位置開始長度爲len的字符串
UPPER(s),UCASE(s) 將字符串s的全部字母都變成大寫
LOWER(s),LCASE(s) 將字符串s的全部字母都變成小寫
LEFT(s,n) 返回字符串左邊的n個字符串
RIGHT(s,n) 返回字符串右邊的n個字符串
LTRIM(s) 返回去除了左邊空格的s
RTRIM(s) 返回去除了右邊空格的s
TRIM(s) 返回去除兩邊的空格的s
TRIM(s1 FROM s) 返回去除了兩邊s1的s
REPEAT(s,n) 將字符串s重複n次
SPACE(n) 返回n個空格
replace(s,s1,s2) 用s2代替s中的s1
STRCMP(s1,s2) 比較字符串s1和s2長度,s1長於s2則返回1,s2長於s1則返回-1,相等則返回0
SUBSTRING(s,n,len) 獲取從字符串s的第n個位置開始長度爲len的字符串
MID(s,n,len) 同SUBSTRING(s,n,len)
LOCATE(s1,s),POSITION(s1 IN s) 找到s中s1的位置
INSTER(s,s1) 查找字符串s1在s中的位置,返回首次出現位置的索引值
REVERSE(s) 將字符串s的順序反過來
ELT(n,s1,s2) 返回第n個字符串
FIELD(s,s1,s2..) 返回第一個與字符串s匹配的字符串的位置
FIND_IN_SET(s1,s2) 返回在字符串s2中與s1匹配的字符串的位置

3. 日期和時間函數

函 數 做 用
CURDATE(),CURRENT_DATE() 返回當前時間
CURTIME(),CURRENT_TIME() 返回當前時間
NOW(),CURRENT_TIMESTAMP(),LOCALTIME(),SYSDATE(),LOCALTIMESTAMP() 返回當前日期和時間
UNIX_TIMESTAMP() 以unix時間戳形式返回當前時間
UNIX_TIMESTAMP(d) 將時間d以unix時間戳形式返回
FROM_UNIXTIME(d) 將unix時間戳的時間轉換爲普通格式的時間
UTC_DATE() 返回UTC日期
UTC_TIME() 返回UTC時間
MONTH(d) 返回日期d中的月份值,範圍0~12
MONTHNAME(d) 返回日期d中的月份名稱
DAYNAME(d) 返回日期d是星期幾
DAYOFWEEK(d) 返回日期d是星期幾,1是星期天,2是星期一
WEEKDAY(d) 返回日期d是星期幾,0是星期一,1是星期二
WEEK(d) 計算日期d是本年的第幾個星期,範圍0~53
WEEKOFYEAR(d) 計算日期d是本年的第幾個星期,範圍1~53
DAYOFYEAR(d) 計算日期d是本年的第幾天
DAYOFMONTH(d) 計算日期d是本月的第幾天
YEAR(d) 返回年份值
QUARTER(d) 返回日期d是第幾個季度,範圍1~4
HOUR(t) 返回時間t中的小時值
MINUTE(t) 返回時間t中的分鐘值
SECOND(t) 返回時間t中的秒鐘值
EXTRACT(type of d) 從日期d中獲取指定的值,type能夠是YEAR,HOUR等
TIME_TO_SEC(t) 將時間t轉換爲秒
SEC_TO_TIME(s) 秒值s轉換爲時間格式
TO_DAYS(d) 計算d~0000年1月1日的天數
FROM_DAYS(n) 計算從0000年1月1日開始n天后的日期
DATEDIFF(d1,d2) 計算日期d1~d2之間相隔的天數
ADDDATE(d,n) 計算起始日期d加上n天的日期
SUBDATE(d,n) 計算起始日期d減去n天的日期
ADDTIME(t,n) 計算起始時間t加上n秒的時間
SUBTIME(t,n) 計算起始時間t減去n秒的時間
DATE_FORMAT(d,f) 按照表達式f的要求顯示日期d
TIME_FORMAT(t,f) 按照表達式f的要求顯示時間t
GET_FORMAT(type,s) 根據字符串s中獲取type類型數據的顯示格式

4. 條件判斷函數

函 數 做 用
IF(expr,v1,v2) 若是表達式expr成立,則執行v1;不然執行v2
IFNULL(v1,v2) 若是v1不爲空,則顯示v1的值;不然顯示v2的值
CASE WHEN expr1 THEN v1[WHEN expr2 THEN v2][ELSE vn]END CASE表示函數開始,END表示函數結束。若是expr1成立,則返回v1的值。相似if(..)..else if(..)..else..
CASE expr WHEN e1 THEN v1[WHEN e2 THEN v2][ELSE vn]END 相似於switch..case v1:..break

5. 系統信息函數

函 數 做 用 示 例
VERSION() 獲取數據庫版本號 select VERSION();
CONNECTION_ID() 獲取服務器的鏈接數 select CONNECTION_ID();
DATABASE(),SCHEMA() 獲取當前數據庫名 select DATABASE(),SCHEMA()
USER(),SYSTEM()_USER(),SESSION_USER(),CURRENT_USER() 獲取當前用戶 select USER();
CHARSET(str)) 獲取字符串str的字符集 select CHARSET('mysql')
COLLATION(str) 獲取字符串str的字符排列順序 select COLLATION('mysql')
LAST_INSERT_ID() 獲取最近生成的auto_increment值 select LAST_INSERT_ID()

6. 加密函數

函 數 做 用 示 例
PASSWORD(str) 對字符串str進行加密。通過次函數加密是不可逆的,其經常用於用戶註冊的密碼加密 select PASSWORD('mysql');
MD5(str) 對字符串進行md5加密。常常用於對普通數據的加密 select MD5('mysql');

7. 其餘函數

函 數 做 用
FORMAT(x,n) 將數據進行格式化,將x保留到小數點後n位,四捨五入
ASCII(s) ASCII(s)返回字符串s的第一個字符的ASCII碼
BIN(x) 返回x的二進制編碼
HEX(x) 返回x的十六進制編碼
OCT(x) 返回八進制編碼
CONCV(x,f1,f2) 將數x從f1進制編程f2進制數
INET_ATION(IP) 能夠將IP地址轉換爲數字表示
INET_NTOA(N) 能夠將數字n轉換成IP
相關文章
相關標籤/搜索