Mysql函數(全)

幫助文檔下載鏈接---http://download.csdn.net/detail/pozmckaoddb/8999497

一、 控制流程函數

a)  CASE WHEN THEN 函數
語法: CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ……] [ELSE result ] END CASE WHEN [condition] THEN result [WHEN[condition] THEN result ……] [ELSE result] END ;
函數用法說明:在第一個方案的返回結果中, value =compare-value 。而第二個方案的返回結果是第一種情況的真實結果。如果沒有匹配的結果值,則返回結果爲 ELSE 後的結果,如果沒有 ELSE 部分,則返回值爲 NULL
b)  IF 函數用法
語法: IF(expr1,expr2,expr3)  
函數用法說明:如果 expr1 是 TRUE (expr1 <> 0 and expr1 <> NULL)  ,則 IF()  的返回值爲 expr2 ; 否則返回值則爲 expr3 。 IF()  的返回值爲數字值或字符串值,具體情況視其所在語境而定
c)  IFNULL 函數
語法: IFNULL(expr1,expr2)  
函數用法說明:假如 expr1 不爲 NULL ,則 IFNULL()  的返回值爲 expr1 ; 否則其返回值爲 expr2 。 IFNULL()  的返回值是數字或是字符串,具體情況取決於其所使用的語境

二、 字符串比較函數
a)  函數 ascii(str)  
函數用法說明:返回值爲字符串 str 的最左字符的數值。假如 str 爲空字符串,則返回值爲 0 。假如 str 爲 NULL ,則返回值爲 NULL 。 ASCII()  用於帶有從 0 到 255 的數值的字符
b)  函數 BIN(N)  
函數用法說明:函數用法說明:返回值爲 N 的二進制值的字符串表示,其中 N 爲一個 longlong (BIGINT) 數字。這等同於 CONV(N ,10,2) 。假如 N 爲 NULL ,則返回值爲 NULL 。
c)  函數CHAR(N ,... [USING charset ])  
函數用法說明: CHAR()  將每個參數 N 理解爲一個整數,其返回值爲一個包含這些整數的代碼值所給出的字符的字符串。 NULL 值被省略。
d)  函數CHAR_LENGTH(str )  
函數使用說明:返回值爲字符串 str 的長度,長度的單位爲字符。一個多字節字符算作一個單字符。對於一個 包含五個二字節字符集 , LENGTH()  返回值爲 10, 而 CHAR_LENGTH()  的返回值爲 5
e)  函數 CHARACTER_LENGTH(str )  
函數使用說明: CHARACTER_LENGTH()  ?CHAR_LENGTH()  的同義詞。
f)  函數 COMPRESS(string_to_compress )  
函數使用說明: COMPRESS( 壓縮一個字符串。這個函數要求 MySQL 已經用一個諸如 zlib 的壓縮庫壓縮過。    否則,返回值始終是 NULL 。 UNCOMPRESS()  可將壓縮過的字符串進行解壓縮 )  。
g)  函數 CONCAT(str1 ,str2 ,...)  
函數使用說明:返回結果爲連接參數產生的字符串。如有任何一個參數爲 NULL ,則返回值爲 NULL 。或許有一個或多個參數。 如果所有參數均爲非二進制字符串,則結果爲非二進制字符串。 如果自變量中含有任一二進制字符串,則結果爲一個二進制字符串。一個數字參數被轉化爲與之相等的二進制字符串格式;若要避免這種情況,可使用顯式類型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR)  , char_col)  
h)  函數 CONCAT_WS(separator ,str1 ,str2 ,...)  
函數使用說明: CONCAT_WS()  代表 CONCAT With Separator ,是 CONCAT()  的特殊形式。    第一個參數是其它參數的分隔符。分隔符的位置放在要連接的兩個字符串之間。分隔符可以是一個字符串,也可以是其它參數。如果分隔符爲 NULL ,則結果爲 NULL 。函數會忽略任何分隔符參數後的 NULL 值。
i)  函數CONV(N from_base, to_base)  
函數使用說明:不同數基間轉換數字。返回值爲數字的 N 字符串表示,由 from_base 基轉化爲 to_base 基。如有任意一個參數爲 NULL ,則返回值爲 NULL 。自變量 N 被理解爲一個整數,但是可以被指定爲一個整數或字符串。最小基數爲 2 ,而最大基數則爲 36 。 If to_base 是一個負數,則 N 被看作一個帶符號數。否則, N 被看作無符號數。 CONV()  的運行精確度爲 64 比特。
j)  函數 ELT(N ,str1 ,str2 ,str3 ,...)  
函數使用說明:若 N = 1 ,則返回值爲   str1 ,若 N = 2 ,則返回值爲 str2 ,以此類推。    若 N 小於 1 或大於參數的數目,則返回值爲 NULL 。 ELT()  ?  FIELD()  的補數
k)  函數 EXPORT_SET(bits ,on ,off [,separator [,number_of_bits ]])  
函數使用說明: 返回值爲一個字符串,其中對於 bits 值中的每個位組,可以得到一個 on 字符串,而對於每個清零比特位,可以得到一個 off 字符串。 bits 中的比特值按照從右到左的順序接受檢驗 ( 由低位比特到高位比特 )  。字符串被分隔字符串分開 ( 默認爲逗號 ‘,’)  ,按照從左到右的順序被添加到結果中。 number_of_bits 會給出被檢驗的二進制位數 ( 默認爲 64)  。
l)  函數 FIELD(str, str1, str2, str3, …...)  
函數使用說明:返回值爲 str1 , str2 , str3 ,…… 列表中的 str 指數。在找不到 str 的情況下,返回值爲 0 。如果所有對於 FIELD()  的參數均爲字符串,則所有參數均按照字符串進行比較。如果所有的參數均爲數字,則按照數字進行比較。否則,參數按照雙倍進行比較。如果 str 爲 NULL ,則返回值爲 0 ,原因是 NULL 不能同任何值進行同等比較。 FIELD()  ?ELT()  的補數。
m)  函數FIND_IN_SET(str, strlist)  
函數使用說明:函數使用說明: 假如字符串 str 在由 N 子鏈組成的字符串列表 strlist 中, 則返回值的範圍在 1 到 N 之間 。一個字符串列表就是一個由一些被 ‘,’ 符號分開的自鏈組成的字符串。如果第一個參數是一個常數字符串,而第二個是 type SET 列,則    FIND_IN_SET() 函數被優化,使用比特計算。如果 str 不在 strlist 或 strlist 爲空字符串,則返回值爲 0 。如任意一個參數爲 NULL ,則返回值爲 NULL 。 這個函數在第一個參數包含一個逗號 (‘,’) 時將無法正常運行。
n)  函數 FORMAT(X ,D )  
函數使用說明: 將 number X 設置爲格式 '#,###,###.##', 以四捨五入的方式保留到小數點後 D 位 , 而返回結果爲一個字符串。
o)  函數 HEX(N_or_S )  
函數使用說明:如果N_OR_S 是一個數字,則返回一個 十六進制值 N 的 字符串表示,在這裏,   N 是一個longlong (BIGINT)  U庀嗟庇?CONV(N,10,16)  。如果N_OR_S 是一個字符串,則返回值爲一個N_OR_S 的十六進制字符串表示,其中每個N_OR_S 裏的每個字符被轉化爲兩個十六進制數字。
p)  函數INSTR(str,substr)  
函數使用說明:返回字符串 str 中子字符串的第一個出現位置。這和LOCATE()  的雙參數形式相同,除非參數的順序被顛倒。
q)  函數LCASE(str)  
函數使用說明:LCASE()  ?LOWER()  的同義詞
r)  函數LEFT(str,len)  
函數使用說明:返回從字符串str 開始的len 最左字符
s)  函數 LENGTH(str )  
函數使用說明: 返回值爲字符串 str 的長度,單位爲字節。一個多字節字符算作多字節。這意味着 對於一個包含 5 個 2 字節字符的字符串, LENGTH()  的返回值爲 10, 而 CHAR_LENGTH()  的返回值則爲5 。
t)  函數 LOAD_FILE(file_name)  
函數使用說明:讀取文件並將這一文件按照字符串的格式返回。 文件的位置必須在服務器上 , 你必須爲文件制定路徑全名,而且你還必須擁有 FILE 特許權。文件必須可讀取,文件容量必須小於 max_allowed_packet 字節。若文件不存在,或因不滿足上述條件而不能被讀取, 則函數返回值爲 NULL
u)  函數 LOCATE(substr ,str )  , LOCATE(substr ,str ,pos )  
函數使用說明:第一個語法返回字符串 str 中子字符串substr 的第一個出現位置。第二個語法返回字符串 str 中子字符串substr 的第一個出現位置, 起始位置在pos 。如若substr 不在str 中,則返回值爲0 。
v)  函數LOWER(str )  
函數使用說明:返回字符串 str 以及所有根據最新的字符集映射表變爲小寫字母的字符
w)  函數LPAD(str ,len ,padstr )  
函數使用說明:返回字符串 str , 其左邊由字符串padstr 填補到len 字符長度。假如str 的長度大於len , 則返回值被縮短至 len 字符。
x)  函數LTRIM(str )  
函數使用說明:返回字符串 str ,其引導空格字符被刪除。
y)  函數 MAKE_SET(bits ,str1 ,str2 ,...)  
函數使用說明: 返回一個設定值 ( 一個包含被 ‘,’ 號分開的字字符串的字符串 )  ,由在 bits 組中具有相應的比特的字符串組成。 str1 對應比特 0, str2 對應比特 1, 以此類推。 str1 , str2 , ... 中的 NULL 值不會被添加到結果中。
z)  函數 MID(str ,pos ,len )  
函數使用說明: MID(str ,pos ,len )  ?SUBSTRING(str ,pos ,len )  的同義詞。
aa)  函數 OCT(N )  
函數使用說明:返回一個 N 的八進制值的字符串表示,其中 N 是一個 longlong (BIGINT) 數。這等同於 CONV(N,10,8) 。若 N 爲 NULL ,則返回值爲 NULL 。
bb)  函數 OCTET_LENGTH(str )  
函數使用說明: OCTET_LENGTH()  ?LENGTH()  的同義詞。
cc)  函數ORD(str )  
函數使用說明:若字符串str 的最左字符是一個多字節字符,則返回該字符的代碼, 代碼的計算通過使用以下公式計算其組成字節的數值而得出: (1st byte code)  + (2nd byte code × 256)  + (3rd byte code × 2562)  ...假如最左字符不是一個多字節字符,那麼 ORD()  和函數ASCII()  返回相同的值
dd)  函數 POSITION(substr IN str )  
函數使用說明:POSITION(substr IN str )  ?LOCATE(substr ,str )  同義詞
ee)  函數QUOTE(str )  
函數使用說明:引證一個字符串,由此產生一個在SQL 語句中可用作完全轉義數據值的結果。  返回的字符串由單引號標註,每例都帶有單引號 (‘'’)  、 反斜線符號 (‘\’)  、 ASCII NUL 以及前面有反斜線符號的Control-Z 。如果自變量的值爲NULL, 則返回不帶單引號的單詞 “NULL” 。
ff)  函數REPEAT(str ,count )  
函數使用說明:返回一個由重複的字符串str 組成的字符串,字符串str 的數目等於count 。 若 count <= 0, 則返回一個空字符串。若str 或 count 爲 NULL ,則返回 NULL 。
gg)  函數REPLACE(str ,from_str ,to_str )  
函數使用說明:返回字符串str 以及所有被字符串to_str 替代的字符串from_str 。
hh)  函數REVERSE(str )  
函數使用說明:返回字符串 str ,順序和字符順序相反。
ii)  函數RIGHT(str ,len )  
函數使用說明:從字符串str 開始,返回最右len 字符。
jj)  函數RPAD(str ,len ,padstr )  
函數使用說明:返回字符串str , 其右邊被字符串 padstr 填補至len 字符長度。假如字符串str 的長度大於 len , 則返回值被縮短到與 len 字符相同長度
kk)  函數RTRIM(str )  
函數使用說明:返回字符串 str ,結尾空格字符被刪去。
ll)  函數 SOUNDEX(str )  
函數使用說明:從str 返回一個soundex 字符串。 兩個具有幾乎同樣探測的字符串應該具有同樣的 soundex 字符串。一個標準的soundex 字符串的長度爲4 個字符,然而SOUNDEX()  函數會返回一個人以長度的字符串。 可使用結果中的SUBSTRING()  來得到一個標準 soundex 字符串。在str 中, 會忽略所有未按照字母順序排列的字符。所有不在A-Z 範圍之內的國際字母符號被視爲元音字母。
mm)  函數expr1 SOUNDS LIKE expr2
函數使用說明: 這相當於SOUNDEX(expr1 )  = SOUNDEX(expr2 )  。
nn)  函數SPACE(N )  
函數使用說明:返回一個由N 間隔符號組成的字符串
oo)  函數SUBSTRING(str ,pos )  , SUBSTRING(str FROM pos )  SUBSTRING(str ,pos ,len )  , SUBSTRING(str FROM pos FOR len )  
函數使用說明:不帶有len 參數的格式從字符串str 返回一個子字符串,起始於位置 pos 。帶有len 參數的格式從字符串str 返回一個長度同len 字符相同的子字符串,起始於位置 pos 。 使用 FROM 的格式爲標準 SQL 語法。也可能對pos 使用一個負值。假若這樣,則子字符串的位置起始於字符串結尾的pos 字符,而不是字符串的開頭位置。在以下格式的函數中可以對pos 使用一個負值。
pp)  函數SUBSTRING_INDEX(str ,delim ,count )  
函數使用說明:在定界符 delim 以及count 出現前,從字符串str 返回自字符串。若count 爲正值, 則返回最終定界符( 從左邊開始)  左邊的一切內容。若count 爲負值,則返回定界符(從右邊開始)右邊的一切內容。
qq)  函數 TRIM([{BOTH | LEADING | TRAILING} [remstr ] FROM] str )  TRIM(remstr FROM] str )  
函數使用說明:返回字符串 str , 其中所有remstr 前綴和/ 或後綴都已被刪除。若分類符BOTH 、LEADIN 或TRAILING 中沒有一個是給定的, 則假設爲BOTH 。 remstr 爲可選項,在未指定情況下,可刪除空格
rr)  函數UCASE(str)  
函數使用說明:UCASE() 是UPPER() 的同義詞
ss)  函數UNCOMPRESS(string_to_uncompress )  
函數使用說明:對經COMPRESS()  函數壓縮後的字符串進行解壓縮。若參數爲壓縮值,則結果爲 NULL 。這個函數要求  MySQL 已被諸如zlib 之類的壓縮庫編譯過。否則, 返回值將始終是 NULL
tt)  函數 UNCOMPRESSED_LENGTH(compressed_string )  
函數使用說明: 返回壓縮字符串壓縮前的長度。
uu)  函數 UNHEX(str)  
函數使用說明:執行從 HEX(str )  的反向操作。就是說,它將參數中的每一對十六進制數字理解爲一個數字,並將其轉化爲該數字代表的字符。結果字符以二進制字符串的形式返回
vv)  函數 UPPER(str )  
函數使用說明:返回字符串 str , 以及根據最新字符集映射轉化爲大寫字母的字符

三、 數學函數
a)  函數 ABS(X)  
函數使用說明:返回 X 的絕對值
b)  函數 ACOS(X )  
函數使用說明:返回 X 反餘弦 , 即 , 餘弦是 X 的值。若 X 不在 -1 到 1 的範圍之內,則返回 NULL 。
c)  函數 ASIN ( X )
函數使用說明:返回X 的反正弦,即,正弦爲X 的值。若X   若X 不在-1 到 1 的範圍之內,則返回 NULL 。
d)  函數ATAN(X )  
函數使用說明:返回 X 的反正切,即,正切爲 X 的值。
e)  函數 ATAN(Y ,X )  , ATAN2(Y ,X )  
函數使用說明:返回兩個變量 X 及 Y 的反正切。 它類似於 Y 或 X 的反正切計算 ,  除非兩個參數的符號均用於確定結果所在象限。
f)  函數 CEILING(X )  CEIL(X )  
函數使用說明:返回不小於 X 的最小整數值。
g)  函數 COS(X )  
函數使用說明:返回 X 的餘弦,其中 X 在弧度上已知。
h)  函數 COT(X )  
函數使用說明:返回 X 的餘切
i)  函數 CRC32(expr )  
函數使用說明:計算循環冗餘碼校驗值並返回一個 32 比特無符號值。若參數爲 NULL ,則結果爲 NULL 。該參數應爲一個字符串,而且在不是字符串的情況下會被作爲字符串處理(若有可能)
j)  函數 DEGREES(X )  
函數使用說明:返回參數 X , 該參數由弧度被轉化爲度。
k)  函數 EXP(X )  
函數使用說明:返回 e 的 X 乘方後的值 ( 自然對數的底 )  。
l)  函數 FLOOR(X )  
函數使用說明:返回不大於 X 的最大整數值 。
m)  函數 FORMAT(X ,D )  
函數使用說明:將數字 X 的格式寫成 '#,###,###.##' 格式 , 即保留小數點後 D 位,而第 D 位的保留方式爲四捨五入,然後將結果以字符串的形式返回
n)  函數 LN(X )  
函數使用說明:返回 X 的自然對數 , 即 , X 相對於基數 e 的對數
o)  函數 LOG(X )  LOG(B ,X )  
函數使用說明:若用一個參數調用,這個函數就會返回 X 的自然對數。
p)  函數 LOG2(X )  
函數使用說明:返回 X 的基數爲 2 的對數。
q)  函數 LOG10(X )  
函數使用說明:返回 X 的基數爲 10 的對數。
r)  函數 MOD(N ,M )  , N % M N MOD M
函數使用說明: 模操作。返回 N 被 M 除後的餘數。
s)  函數 PI()  
函數使用說明:返回 w (pi) 的值。默認的顯示小數位數是 7 位 , 然而 MySQL 內部會使用完全雙精度值。    
t)  函數 POW(X ,Y )  , POWER(X ,Y )  
函數使用說明:返回 X 的 Y 乘方的結果值。
u)  函數 RADIANS(X )  
函數使用說明:返回由度轉化爲弧度的參數 X ,  ( 注意 PI 弧度等於 180 度)。
v)  函數 RAND()  RAND(N )  
函數使用說明:返回一個隨機浮點值 v ,範圍在 0 到 1 之間 ( 即 , 其範圍爲 0 ≤ v ≤ 1.0)  。若已指定一個整數參數 N ,則它被用作種子值,用來產生重複序列。
w)  函數 ROUND(X )  ROUND(X ,D )  
函數使用說明:返回參數 X , 其值接近於最近似的整數。在有兩個參數的情況下,返回 X ,其值保留到小數點後 D 位,而第 D 位的保留方式爲四捨五入。若要接保留 X 值小數點左邊的 D 位,可將 D 設爲負值。
x)  函數 SIGN(X )  
函數使用說明:返回參數作爲 -1 、 0 或 1 的符號,該符號取決於 X 的值爲負、零或正。
y)  函數 SIN(X )  
函數使用說明:返回 X 正弦,其中 X 在弧度中被給定。
z)  函數 SQRT(X )  
函數使用說明: 返回非負數 X 的二次方根。
aa)  函數TAN(X )  
函數使用說明: 返回 X 的正切,其中 X 在弧度中被給定。
bb)  函數TRUNCATE(X ,D )  
函數使用說明: 返回被捨去至小數點後 D 位的數字 X 。若 D 的值爲 0, 則結果不帶有小數點或不帶有小數部分。可以將 D 設爲負數 , 若要截去 ( 歸零 )  X 小數點左起第 D 位開始後面所有低位的值

四、  日期和時間函數
a)  函數ADDDATE(date ,INTERVAL expr type )  ADDDATE(expr ,days )  
函數使用說明: 當被第二個參數的 INTERVAL 格式激活後, ADDDATE()  就是 DATE_ADD()  的同義詞。相關函數 SUBDATE()  則是 DATE_SUB()  的同義詞。對於 INTERVAL 參數上的信息 ,請參見關於 DATE_ADD()  的論述。
b)  函數 ADDTIME(expr ,expr2 )  
函數使用說明: ADDTIME()  將 expr2 添加至 expr 然後返回結果。 expr 是一個時間或時間日期表達式,而 expr2 是一個時間表達式。
c)  函數 CONVERT_TZ(dt ,from_tz ,to_tz )  
函數使用說明: CONVERT_TZ()  將時間日期值 dt 從 from_tz 給出的時區轉到 to_tz 給出的時區,然後返回結果值。關於可能指定的時區的詳細論述,若自變量無效,則這個函數會返回 NULL
d)  函數 CURDATE()  
函數使用說明:將當前日期按照 'YYYY-MM-DD' 或 YYYYMMDD 格式的值返回,具體格式根據函數用在字符串或是數字語境中而定。
e)  函數 CURRENT_DATE CURRENT_DATE()  
函數使用說明: CURRENT_DATE 和 CURRENT_DATE()  塹耐宕?.
f)  函數 CURTIME()  
函數使用說明: 將當前時間以 'HH:MM:SS' 或 HHMMSS 的格式返回, 具體格式根據函數用在字符串或是數字語境中而定。
g)  函數 CURRENT_TIME, CURRENT_TIME()  
函數使用說明: CURRENT_TIME 和 CURRENT_TIME()  ?CURTIME()  的同義詞。
h)  函數 CURRENT_TIMESTAMP, CURRENT_TIMESTAMP()  
函數使用說明: CURRENT_TIMESTAMP 和 CURRENT_TIMESTAMP()  ?NOW()  的同義詞
i)  函數 DATE(expr )  
函數使用說明: 提取日期或時間日期表達式 expr 中的日期部分。
j)  函數 DATEDIFF(expr ,expr2 )  
函數使用說明: DATEDIFF()  返回起始時間 expr 和結束時間 expr2 之間的天數。 Expr 和 expr2 爲日期或 date-and-time 表達式。計算中只用到這些值的日期部分。
k)  函數 DATE_ADD(date ,INTERVAL expr type )  DATE_SUB(date ,INTERVAL expr type )  
函數使用說明:這些函數執行日期運算。 date 是一個 DATETIME 或 DATE 值,用來指定起始時間。 expr 是一個表達式,用來指定從起始日期添加或減去的時間間隔值。   Expr 是一個字符串 ; 對於負值的時間間隔,它可以以一個 ‘-’ 開頭。 type 爲關鍵詞,它指示了表達式被解釋的方式。
l)  函數 DATE_FORMAT(date ,format )  
函數使用說明:根據 format 字符串安排 date 值的格式。
m)  函數 DAY(date )  
函數使用說明: DAY()  和 DAYOFMONTH()  的意義相同
n)  函數 DAYNAME(date )  
函數使用說明:返回 date 對應的工作日名稱。
o)  函數 DAYOFMONTH(date )  
函數使用說明:返回 date 對應的該月日期,範圍是從 1 到 31
p)  函數 DAYOFWEEK(date )  
函數使用說明:返回 date (1 = 週日 , 2 = 週一 , ..., 7 = 週六 )  對應的工作日索引。這些索引值符合 ODBC 標準
q)  函數 DAYOFYEAR(date )  
函數使用說明:返回date 對應的一年中的天數,範圍是從 1 到366 。
r)  函數 EXTRACT(type FROM date )  
函數使用說明: EXTRACT()  函數所使用的時間間隔類型說明符同 DATE_ADD()  或 DATE_SUB()  的相同 , 但它從日期中提取其部分,而不是執行日期運算。
s)  函數FROM_DAYS(N )  
函數使用說明: 給定一個天數   N , 返回一個 DATE 值。
t)  函數 FROM_UNIXTIME(unix_timestamp )  ROM_UNIXTIME(unix_timestamp ,format )  
函數使用說明:返回'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS 格式值的unix_timestamp 參數表示,具體格式取決於該函數是否用在字符串中或是數字語境中。 若format 已經給出,則結果的格式是根據format 字符串而定。 format 可以包含同DATE_FORMAT()  函數輸入項列表中相同的說明符。
u)  函數 GET_FORMAT(DATE|TIME|DATETIME, 'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL')  
函數使用說明:返回一個格式字符串。這個函數在同 DATE_FORMAT()  及 STR_TO_DATE()  函數結合時很有用
v)  函數 HOUR(time )  
函數使用說明:返回 time 對應的小時數。對於日時值的返回值範圍是從 0 到 23
w)  函數 LAST_DAY(date )  
函數使用說明:獲取一個日期或日期時間值,返回該月最後一天對應的值。若參數無效,則返回 NULL 。
x)  函數 LOCALTIME, LOCALTIME()  
函數使用說明: LOCALTIME 及 LOCALTIME()  和 NOW()  具有相同意義。
y)  函數 LOCALTIMESTAMP, LOCALTIMESTAMP()  
函數使用說明: LOCALTIMESTAMP 和 LOCALTIMESTAMP()  和 NOW()  具有相同意義。
z)  函數 MAKEDATE(year ,dayofyear )  
函數使用說明:給出年份值和一年中的天數值,返回一個日期。 dayofyear 必須大於 0 ,否則結果爲 NULL 。
aa)  函數 MAKETIME(hour ,minute ,second )  
函數使用說明: 返回由 hour 、 minute 和 second 參數計算得出的時間值
bb)  函數 CROSECOND(expr )  
函數使用說明:從時間或日期時間表達式 expr 返回微秒值,其數字範圍從 0 到 999999 。
cc)  函數 MINUTE(time )  
函數使用說明:返回 time 對應的分鐘數 , 範圍是從 0 到 59 。
dd)  函數 MONTH(date )  
函數使用說明:返回 date 對應的月份,範圍時從 1 到 12 。
ee)  函數 MONTHNAME(date )  
函數使用說明: 返回 date 對應月份的全名
ff)  函數 NOW()  
函數使用說明:返回當前日期和時間值,其格式爲 'YYYY-MM-DD HH:MM:SS' 或 YYYYMMDDHHMMSS , 具體格式取決於該函數是否用在字符串中或數字語境中。
gg)  函數 PERIOD_ADD(P ,N )  
函數使用說明:添加 N 個月至週期 P ( 格式爲 YYMM 或 YYYYMM)  ,返回值的格式爲 YYYYMM 。注意週期參數 P 不是 日期值。  
hh)  函數 PERIOD_DIFF(P1 ,P2 )  
函數使用說明:返回週期 P1 和 P2 之間的月份數。 P1 和 P2 的格式應該爲 YYMM 或 YYYYMM 。注意週期參數 P1 和 P2 不是 日期值。
ii)  函數 QUARTER(date )  
函數使用說明:返回 date 對應的一年中的季度值,範圍是從 1 到 4
jj)  函數 SECOND(time )  
函數使用說明:返回 time 對應的秒數 , 範圍是從 0 到 59 。
kk)  函數 SEC_TO_TIME(seconds )  
函數使用說明: 返回被轉化爲小時、 分鐘和秒數的 seconds 參數值 , 其格式爲 'HH:MM:SS' 或 HHMMSS ,具體格式根據該函數是否用在字符串或數字語境中而定
ll)  函數 STR_TO_DATE(str ,format )  
函數使用說明:這是 DATE_FORMAT()  函數的倒轉。它獲取一個字符串 str 和一個格式字符串 format 。若格式字符串包含日期和時間部分,則 STR_TO_DATE()  返回一個 DATETIME 值, 若該字符串只包含日期部分或時間部分,則返回一個 DATE 或 TIME 值。
mm)  函數 SUBDATE(date ,INTERVAL expr type )  SUBDATE(expr ,days )  
函數使用說明:當被第二個參數的 INTERVAL 型式調用時 , SUBDATE()  和 DATE_SUB()  的意義相同。對於有關 INTERVAL 參數的信息, 見有關 DATE_ADD()  的討論。
nn)  函數 SUBTIME(expr ,expr2 )  
函數使用說明: SUBTIME()  從 expr 中提取 expr2 ,然後返回結果。 expr 是一個時間或日期時間表達式,而 xpr2 是一個時間表達式。
oo)  函數 SYSDATE()  
函數使用說明:返回當前日期和時間值,格式爲 'YYYY-MM-DD HH:MM:SS' 或 YYYYMMDDHHMMSS , 具體格式根據函數是否用在字符串或數字語境而定。
pp)  函數 TIME(expr )  
函數使用說明:提取一個時間或日期時間表達式的時間部分,並將其以字符串形式返回。
qq)  函數 TIMEDIFF(expr ,expr2 )  
函數使用說明: TIMEDIFF()  返回起始時間 expr 和結束時間 expr2 之間的時間。 expr 和 expr2 爲時間或 date-and-time 表達式 , 兩個的類型必須一樣。  
rr)  函數TIMESTAMP(expr )  , TIMESTAMP(expr ,expr2 )  
函數使用說明: 對於一個單參數 , 該函數將日期或日期時間表達式 expr 作爲日期時間值返回 . 對於兩個參數 , 它將時間表達式 expr2 添加到日期或日期時間表達式 expr 中,將 theresult 作爲日期時間值返回。
ss)  函數 TIMESTAMPADD(interval ,int_expr ,datetime_expr )  
函數使用說明:將整型表達式int_expr 添加到日期或日期時間表達式 datetime_expr 中。 int_expr 的單位被時間間隔參數給定,該參數必須是以下值的其中一個: FRAC_SECOND 、SECOND 、 MINUTE 、 HOUR 、 DAY 、 WEEK 、 MONTH 、 QUARTER 或 YEAR 。可使用所顯示的關鍵詞指定Interval 值,或使用SQL_TSI_ 前綴。例如, DAY 或SQL_TSI_DAY 都是正確的
tt)  函數 TIMESTAMPDIFF(interval ,datetime_expr1 ,datetime_expr2 )  
函數使用說明:返回日期或日期時間表達式 datetime_expr1 和 datetime_expr2 the 之間的整數差。其結果的單位由 interval 參數給出。 interval 的法定值同 TIMESTAMPADD()  函數說明中所列出的相同。
uu)  函數 TIME_FORMAT(time ,format )  
函數使用說明:其使用和 DATE_FORMAT()  函數相同 , 然而 format 字符串可能僅會包含處理小時、分鐘和秒的格式說明符。其它說明符產生一個 NULL 值或 0 。
vv)  函數 TIME_TO_SEC(time )  
函數使用說明:返回已轉化爲秒的 time 參數
ww)  函數 TO_DAYS(date )  
函數使用說明:給定一個日期 date , 返回一個天數 ( 從年份 0 開始的天數 )  。
xx)  函數 UNIX_TIMESTAMP()  , UNIX_TIMESTAMP(date )  
函數使用說明:若無參數調用,則返回一個 Unix timestamp ('1970-01-01 00:00:00' GMT 之後的秒數 )  作爲無符號整數。若用 date 來調用 UNIX_TIMESTAMP()  ,它會將參數值以 '1970-01-01 00:00:00' GMT 後的秒數的形式返回。 date 可以是一個 DATE 字符串、一個 DATETIME 字符串、一個 TIMESTAMP 或一個當地時間的 YYMMDD 或 YYYMMDD 格式的數字。
yy)  函數 UTC_DATE, UTC_DATE()  
函數使用說明:返回當前 UTC 日期值,其格式爲 'YYYY-MM-DD' 或 YYYYMMDD ,具體格式取決於函數是否用在字符串或數字語境中。
zz)  函數 UTC_TIME, UTC_TIME()  
函數使用說明:返回當前 UTC 值,其格式爲   'HH:MM:SS' 或 HHMMSS ,具體格式根據該函數是否用在字符串或數字語境而定。
aaa)  函數 UTC_TIMESTAMP, UTC_TIMESTAMP()  
函數使用說明:返回當前 UTC 日期及時間值,格式爲 'YYYY-MM-DD HH:MM:SS' 或 YYYYMMDDHHMMSS ,具體格式根據該函數是否用在字符串或數字語境而定
bbb)  函數 WEEK(date [,mode ])  
函數使用說明:該函數返回 date 對應的星期數。 WEEK()  的雙參數形式允許你指定該星期是否起始於週日或週一, 以及返回值的範圍是否爲從 0 到 53 或從 1 到 53 。若 mode 參數被省略,則使用 default_week_format 系統自變量的值。
ccc)  函數 WEEKDAY(date )  
函數使用說明:返回 date (0 = 週一 , 1 = 週二 , ... 6 = 週日 )  對應的工作日索引   weekday index for
ddd)  函數 WEEKOFYEAR(date )  
函數使用說明:將該日期的陽曆周以數字形式返回,範圍是從 1 到 53 。它是一個兼容度函數,相當於 WEEK(date ,3)  。
eee)  函數 YEAR(date )  
函數使用說明:返回 date 對應的年份 , 範圍是從 1000 到 9999 。
fff)  函數 YEARWEEK(date )  , YEARWEEK(date ,start )  
函數使用說明:返回一個日期對應的年或周。 start 參數的工作同 start 參數對 WEEK()  的工作相同。結果中的年份可以和該年的第一週和最後一週對應的日期參數有所不同。

五、 全文搜索功能函數
a)  函數 MATCH (col1,col2,...)  AGAINST (expr [IN BOOLEAN MODE | WITH QUERY EXPANSION])  

六、 加密函數
a)  函數 AES_ENCRYPT(str ,key_str )  , AES_DECRYPT(crypt_str ,key_str )  
函數使用說明:這些函數允許使用官方 AES 進行加密和數據加密 ( 高級加密標準 )  算法 , 即以前人們所熟知的 “Rijndael” 。 保密關鍵字的長度爲 128 比特,不過你可以通過改變源而將其延長到 256 比特。我們選擇了 128 比特的原因是它的速度要快得多,且對於大多數用途而言這個保密程度已經夠用。
b)  函數DECODE(crypt_str ,pass_str )  
函數使用說明:使用 pass_str 作爲密碼,解密加密字符串 crypt_str , crypt_str 應該是由 ENCODE()  返回的字符串。
c)  函數 ENCODE(str ,pass_str )  
函數使用說明:使用 pass_str 作爲密碼,解密 str 。 使用 DECODE()  解密結果。
d)  函數 DES_DECRYPT(crypt_str [,key_str ])  
函數使用說明:使用 DES_ENCRYPT()  加密一個字符串。若出現錯誤,這個函數會返回 NULL 。
e)  函數 DES_ENCRYPT(str [,(key_num |key_str )  ])  
函數使用說明:用 Triple-DES 算法給出的關鍵字加密字符串。若出現錯誤,這個函數會返回 NULL 。
f)  函數 ENCRYPT(str [,salt ])  
函數使用說明:使用 Unix crypt()  系統調用加密 str 。 salt 參數應爲一個至少包含 2 個字符的字符串。若沒有給出 salt 參數,則使用任意值。
g)  函數 MD5(str )  
函數使用說明:爲字符串算出一個 MD5 128 比特檢查和。該值以 32 位十六進制數字的二進制字符串的形式返回 , 若參數爲 NULL 則會返回 NULL 。例如,返回值可被用作散列關鍵字
h)  函數 OLD_PASSWORD(str )  
函數使用說明:當 PASSWORD() 的執行變爲改善安全性時, OLD_PASSWORD() 會被添加到 MySQL 。 OLD_PASSWORD() 返回從前的 PASSWORD() 執行值 ( 4.1 之前 ) ,同時允許你爲任何 4.1 之前的需要連接到你的 5.1 版本 MySQL 服務器前客戶端設置密碼,從而不至於將它們切斷
i)  函數PASSWORD(str )  
函數使用說明:從原文密碼str 計算並返回密碼字符串,當參數爲 NULL 時返回 NULL 。這個函數用於用戶授權表的Password 列中的加密MySQL 密碼存儲

七、 信息函數
a)  函數 BENCHMARK(count ,expr )  
函數使用說明: BENCHMARK()  函數重複 count 次執行表達式 expr 。 它可以被用於計算   MySQL 處理表達式的速度。結果值通常爲 0 。另一種用處來自 mysql 客戶端內部 , 能夠報告問詢執行的次數
b)  函數 CHARSET(str )  
函數使用說明:返回字符串自變量的字符集。
c)  函數 COERCIBILITY(str )  
函數使用說明:返回字符串自變量的整序可壓縮性值。
d)  函數 COLLATION(str )  
函數使用說明:返回惠字符串參數的排序方式。
e)  函數 CONNECTION_ID()  
函數使用說明:返回對於連接的連接 ID ( 線程 ID)  。每個連接都有各自的唯一 ID 。
f)  函數 CURRENT_USER, CURRENT_USER()  
函數使用說明:返回當前話路被驗證的用戶名和主機名組合。這個值符合確定你的存取權限的 MySQL 賬戶。在被指定 SQL SECURITY DEFINER 特徵的存儲程序內, CURRENT_USER()  返回程序的創建者
g)  函數 DATABASE()  
函數使用說明:返回使用 utf8 字符集的默認 ( 當前 ) 數據庫名。在存儲程序裏,默認數據庫是同該程序向關聯的數據庫,但並不一定與調用語境的默認數據庫相同。
h)  函數 FOUND_ROWS()  
函數使用說明: A SELECT 語句可能包括一個 LIMIT 子句,用來限制服務器返回客戶端的行數。在有些情況下,需要不用再次運行該語句而得知在沒有 LIMIT 時到底該語句返回了多少行。爲了知道這個行數 , 包括在 SELECT 語句中選擇   SQL_CALC_FOUND_ROWS ,隨後調用 FOUND_ROWS()  
i)  函數 LAST_INSERT_ID()  LAST_INSERT_ID(expr )  
函數使用說明:自動返回最後一個 INSERT 或 UPDATE 問詢爲 AUTO_INCREMENT 列設置的第一個 發生的值。
j)  函數 ROW_COUNT()  
函數使用說明: ROW_COUNT()  返回被前面語句升級的、插入的或刪除的行數。 這個行數和 mysql 客戶端顯示的行數及 mysql_affected_rows()  C API 函數返回的值相同。
k)  函數 SCHEMA()  
函數使用說明:這個函數和 DATABASE()  具有相同的意義
l)  函數 SESSION_USER()  
函數使用說明: SESSION_USER()  和 USER()  具有相同的意義。
m)  函數 SYSTEM_USER()  
函數使用說明: SYSTEM_USER()  合 USER()  具有相同的意義
n)  函數 USER()  
函數使用說明:返回當前 MySQL 用戶名和機主名
o)  函數 VERSION()  
函數使用說明:返回指示 MySQL 服務器版本的字符串。這個字符串使用 utf8 字符集。

八、 其他函數
a)  函數 DEFAULT(col_name )  
函數使用說明:返回一個表列的默認值。若該列沒有默認值則會產生錯誤。
b)  函數 FORMAT(X ,D )  
函數使用說明:將數字 X 的格式寫爲 '#,###,###.##', 以四捨五入的方式保留小數點後 D 位, 並將結果以字符串的形式返回。若   D 爲 0, 則返回結果不帶有小數點,或不含小數部分。
c)  函數 GET_LOCK(str ,timeout )  
函數使用說明:設法使用字符串 str 給定的名字得到一個鎖, 超時爲 timeout 秒。若成功得到鎖,則返回 1 ,若操作超時則返回 0  ( 例如 , 由於另一個客戶端已提前封鎖了這個名字 ), 若發生錯誤則返回 NULL ( 諸如缺乏記憶或線程 mysqladmin kill 被斷開 ) 。假如你有一個用 GET_LOCK() 得到的鎖,當你執行 RELEASE_LOCK() 或你的連接斷開 ( 正常或非正常 ) 時,這個鎖就會解除
d)  函數 INET_ATON(expr )  
函數使用說明:給出一個作爲字符串的網絡地址的點地址表示,返回一個代表該地址數值的整數。地址可以是 4 或 8 比特地址。
e)  函數 INET_NTOA(expr )  
函數使用說明:給定一個數字網絡地址 (4 或 8 比特 )  , 返回作爲字符串的該地址的電地址表示
f)  函數 IS_FREE_LOCK(str )  
函數使用說明:檢查名爲 str 的鎖是否可以使用 ( 換言之 , 沒有被封鎖 )  。若鎖可以使用,則返回   1  ( 沒有人在用這個鎖 )  , 若這個鎖正在被使用,則返回 0 ,出現錯誤則返回 NULL  ( 諸如不正確的參數 )  。
g)  函數 IS_USED_LOCK(str )  
函數使用說明:檢查名爲 str 的鎖是否正在被使用 ( 換言之 , 被封鎖 )  。若被封鎖,則返回使用該鎖的客戶端的連接標識符。否則返回 NULL 。
h)  函數 MASTER_POS_WAIT(log_name ,log_pos [,timeout ])  
函數使用說明:該函數對於控制主從同步很有用處。它會持續封鎖,直到從設備閱讀和應用主機記錄中所有補充資料到指定的位置。返回值是其爲到達指定位置而必須等待的記錄事件的數目。若從設備 SQL 線程沒有被啓動、從設備主機信息尚未初始化、參數不正確或出現任何錯誤,則該函數返回 NULL 。若超時時間被超過,則返回 -1 。若在 MASTER_POS_WAIT()  等待期間,從設備 SQL 線程中止,則該函數返回 NULL 。若從設備由指定位置通過,則函數會立即返回結果。
i)  函數 NAME_CONST(name ,value )  
函數使用說明:返回給定值。 當用來產生一個結果集合列時 , NAME_CONST()  促使該列使用給定名稱。
j)  函數 RELEASE_LOCK(str )  
函數使用說明:解開被 GET_LOCK()  獲取的,用字符串 str 所命名的鎖。若鎖被解開,則返回   1 ,若改線程尚未創建鎖,則返回 0 ( 此時鎖沒有被解開 )  , 若命名的鎖不存在,則返回 NULL 。若該鎖從未被對 GET_LOCK()  的調用獲取,或鎖已經被提前解開,則該鎖不存在。
k)  函數 SLEEP(duration )  
函數使用說明:睡眠 ( 暫停 ) 時間爲 duration 參數給定的秒數,然後返回 0 。若 SLEEP() 被中斷 , 它會返回 1 。 duration 或許或包括一個給定的以微秒爲單位的分數部分。
l)  函數 UUID()  
函數使用說明:返回一個通用唯一標識符 (UUID)  , UUID 被設計成一個在時間和空間上都獨一無二的數字。 2 個對 UUID()  的調用應產生 2 個不同的值,即使這些調用的執行是在兩個互不相連的單獨電腦上進行。
m)  函數 VALUES(col_name )  
函數使用說明:在一個 INSERT … ON DUPLICATE KEY UPDATE … 語句中,你可以在 UPDATE 子句中使用 VALUES(col_name )  函數,用來訪問來自該語句的 INSERT 部分的列值。換言之, UPDATE 子句中的 VALUES(col_name )  訪問需要被插入的 col_name 的值 , 並不會發生重複鍵衝突。這個函數在多行插入中特別有用。   VALUES()  函數只在 INSERT ... UPDATE 語句中有意義,而在其它情況下只會返回 NULL

九、 聚合函數
a)  函數 AVG([DISTINCT] expr )  
函數使用說明:返回 expr 的平均值。 DISTINCT 選項可用於返回 expr 的不同值的平均值。
b)  函數 BIT_AND(expr )  
函數使用說明:返回expr 中所有比特的 bitwise AND 。計算執行的精確度爲64 比特(BIGINT)  。若找不到匹配的行,則這個函數返回18446744073709551615 。( 這是無符號 BIGINT 值,所有比特被設置爲 1 )。
c)  函數 BIT_OR(expr )  
函數使用說明:返回expr 中所有比特的bitwise OR 。計算執行的精確度爲64 比特(BIGINT)  。若找不到匹配的行,則函數返回 0 。
d)  函數BIT_XOR(expr )  
函數使用說明:返回expr 中所有比特的bitwise XOR 。計算執行的精確度爲64 比特(BIGINT)  。若找不到匹配的行,則函數返回 0 。
e)  函數 COUNT(expr )  
函數使用說明:返回SELECT 語句檢索到的行中非NULL 值的數目。若找不到匹配的行,則COUNT()  返回 0
f)  函數 COUNT(DISTINCT expr ,[expr ...])  
函數使用說明:返回不同的非NULL 值數目。若找不到匹配的項,則COUNT(DISTINCT)  返回 0
g)  函數 GROUP_CONCAT(expr )  
函數使用說明:該函數返回帶有來自一個組的連接的非NULL 值的字符串結果。其完整的語法如下所示:GROUP_CONCAT([DISTINCT] expr [,expr ...][ORDER BY {unsigned_integer | col_name | expr }                 [ASC | DESC] [,col_name ...]]             [SEPARATOR str_val ])  
h)  函數 MIN([DISTINCT] expr )  , MAX([DISTINCT] expr )  
函數使用說明:返回 expr 的最小值和最大值。 MIN()  和 MAX()  的取值可以是一個字符串參數;在這些情況下, 它們返回最小或最大字符串值。
i)  函數 STD(expr )  STDDEV(expr )  
函數使用說明:返回 expr 的總體標準偏差。這是標準 SQL 的延伸。這個函數的 STDDEV() 形式用來提供和 Oracle 的兼容性。可使用標準 SQL 函數 STDDEV_POP() 進行代替j)     
j)  函數 STDDEV_POP(expr )  
函數使用說明:返回expr 的總體標準偏差(VAR_POP()  的平方根)  。你也可以使用  STD()  或STDDEV()  , 它們具有相同的意義,然而不是標準的 SQL 。若找不到匹配的行,則STDDEV_POP()  返回 NULL
k)  函數 STDDEV_SAMP(expr )  
函數使用說明:返回expr 的樣本標準差 ( VAR_SAMP()  的平方根)  。若找不到匹配的行,則STDDEV_SAMP()  返回 NULL
l)  函數 SUM([DISTINCT] expr )  
函數使用說明:返回expr 的總數。 若返回集合中無任何行,則 SUM()  返回NULL 。DISTINCT 關鍵詞可用於 MySQL 5.1 中,求得expr 不同值的總和。 若找不到匹配的行,則SUM()  返回 NULL
m)  函數 VAR_POP(expr )  
函數使用說明:返回 expr 總體標準方差。它將行視爲總體,而不是一個樣本, 所以它將行數作爲分母。你也可以使用 VARIANCE()  , 它具有相同的意義然而不是 標準的 SQL
n)  函數 VAR_SAMP(expr )  
函數使用說明:返回expr 的樣本方差。更確切的說,分母的數字是行數減去1 。若找不到匹配的行,則VAR_SAMP()  返回NULL
o)  函數VARIANCE(expr )  函
數使用說明:返回expr 的總體標準方差。這是標準SQL 的延伸。可使用標準SQL 函數 VAR_POP()  進行代替。若找不到匹配的項,則VARIANCE()  返回NULL
發佈了45 篇原創文章 · 獲贊 122 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章