mysql提供了衆多功能強大的、方便使用得當函數。使用這些函數,能夠極大的提升用戶對於數據庫的管理效率。mysql中的函數包括:數學函數、字符串函數、日期和時間函數、條件判斷函數、系統信息函數、加密函數等。mysql
函數表示對輸入參數值返回一個具備特定關係的值,mysql提供了大量豐富的函數,在進行數據庫管理以及數據的查詢和操做時將會常常使用到各類函數。經過對數據的處理,數據庫的功能能夠變的更加的強大,以知足不一樣用戶的需求。sql
ABS(X)返回數據X的絕對值數據庫
PI()返回的是圓周率Π的值,默認的是顯示小數位數是後六位。函數
SQRT(X)返回的是X的二次方根的值。X必須是非負數,不然返回的是NULL。加密
MOD(X,Y)返回的是X被Y除之後的餘數,MOD(X,Y)對於帶有小數的數值也起做用,返回除法運算後的精確餘數。3d
CEIL(X),CEILING(x)兩個函數的意義相同,都是返回大於數值X的最小整數,返回值轉化爲BIGINT類型。code
FLOOR(x)函數是返回小於數值x的最大整數,返回值轉化爲BIGINT類型。blog
RAND()返回的是一個隨機的在0~1之間的一個隨機浮點數。字符串
RAND(X)返回的是一個隨機的在0~1之間的一個隨機浮點數,可是若是X相同時,返回相同的浮點數,用來產生重複序列。數學
ROUND(x)返回數值x的最接近X的數值。對數值進行四捨五入。
ROUND(x,y)返回數值x的最接近x的數值,若是是帶有小數的數,保留小數點後y位。若y爲負數,那麼保留小數點前面整數位第幾位。
TRUNCATE(x,y)函數返回的是數值x精確到小數點後幾位的數,不進行四捨五入,這是和ROUND函數的區別。若是y是負數的話,那麼直接將小數點前y位歸零並輸出顯示。
SIGN(x)函數返回的是x的符號,若是數值x是正數,返回1;負數返回-1;0返回0。
POW(x,y)和POWER(x,y)返回的是x的y次方的結果值。
EXP(x)返回的是e的x次方的值。
CHAR_LENGTH(x)返回的是字符串的字符數,一個多字節字符算做一個單字符,好比一個漢字佔2個字符可是算做一個單字符。
LENGTH(x)返回的是字符串的長度,一個漢字是2個字節,一個數字或者一個字母是一個字符。
CONCAT(s1,s2,...)返回的結果是,將s1到sn這些字符串鏈接之後的字符串,任何一個參數爲NULL時,返回爲NULL。
CONCAT_WS(x,s1,s2,...)返回的結果是,以x爲後面跟的參數的鏈接符號,而後鏈接輸出字符串。若是分隔符爲NULL,則返回結果爲NULL;若是後面的參數有NULL時,則會忽略NULL值輸出。
INSERT(s1,x,len,s2)返回的是:將s1從第x個字符開始以後長度爲len的字符替換爲s2之後的字符串。
若是 x > len(s1),那麼原字符串輸出;若是 x < len(s1) AND len <= len(s2),輸出替換後的字符串;若是 len > len(s2),那麼從x處開始替換。
LOWER(str)和LCASE(str)意義是同樣的,都是將字符串中的大寫字母替換成小寫字母。
UPPER(str)和UCASE(str)意義是同樣的,都是將字符串中的小寫字母替換成大寫字母。
LEFT(str,n)返回的是:字符串從左邊開始到第n個字符之間的字符。
RIGHT(str,n)返回的是:字符串從右邊第n個字符開始到str結束的之間的字符。
LPAD(s1,len,s2)\RPAD(s1,len,s2) 返回的是:若是s1長度不足len的時候,自動用s2在 左邊\右邊 補足len的長度,而後輸出;若是s1恰好等於len,那麼直接輸出s1;若是len小於s1的時候,就至關因而獲取指定長度的字符串,可是都是從左邊開始截取。
LTRIM(s)返回的是刪除字符串左邊所有空格之後的字符串,RTRIM(s)返回的是刪除字符串右邊所有空格之後的字符串,TRIM(s)返回的是刪除字符串左右兩邊的所有空格之後的字符串。
TRIM(s FROM s1)返回的是:刪除s1中的指定的、在s1兩端的、指定的字符串s,之後返回的字符串。若是 s FROM 不存在,則表示刪除左右兩邊的空格而後輸出字符串。
REPEAT(str,n)返回的是:重複n遍輸出的字符串。若是n等於0,返回一個空的字符串;若是n或者str爲null,返回NULL。
SPACE(n)返回的是由n個空格組成的字符串。
REPLACE(s,s1,s2)返回的是:將字符串s中的s1用s2替換後返回的字符串。
STRCMP(s1,s2)返回的是:若是 s1 > s2,返回1;若是 s1 < s2,返回-1;若是 s1 = s2,返回0。
比較的規則是:依次一個字母\數字的比較,若是第一個比較出大小以後,直接返回值,再也不進行比較。若是第一個沒有比較出來的話,會接着按順序比較後面的。
SUBSTRING(s,n,len)和MID(s,n,len)意義是同樣的,返回的是字符串s從第n個字符開始的,以後的長度爲len的字符串。
LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1)意義是同樣的,都是返回str1參數,在str參數內的位置。
REVERSE(s)返回的是:倒敘輸出的字符串。
ELT(N,str1,str2,...)返回的是:N是幾,就返回strN。
若是含有一個NULL,返回值就是NULL。
IF(expr,s1,s2)含義是:若是expr是真(即,expr <> 0 and expr <> NULL),時,返回第一個參數 s1,不然返回第二個參數s2。
case函數的語法:
(1)case expr when v1 then s1 when v2 then s2 end
(2)case when v1 then s1 else rn end
USER()、CURRENT_USER()、SYSTEM_USER()
1.PASSWORD(str)
2.MD5(str)
3.ENCODE(str,pswd_str)
4解密函數 DECODE(encode_str,pswd_str)
1.格式化函數 FORMAT(x,n)
2.不一樣進制間的數字進行轉換的函數 CONV(N,from_base,to_base)
3.重複執行指定的操做的函數 BENCHMARK(count,expr)
可用於計算MySQL處理表達式的速度