《MYSQL數(shù)據(jù)庫(kù)與MSSQL對(duì)比學(xué)習(xí)MYSQL的心得(六)--函數(shù)》要點(diǎn):
本文介紹了MYSQL數(shù)據(jù)庫(kù)與MSSQL對(duì)比學(xué)習(xí)MYSQL的心得(六)--函數(shù),希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
MYSQL應(yīng)用數(shù)學(xué)函數(shù)
MYSQL應(yīng)用1、求余函數(shù)MOD(X,Y)
MYSQL應(yīng)用MOD(X,Y)返回x被y除后的余數(shù),MOD()對(duì)于帶有小數(shù)部分的數(shù)值也起作用,他返回除法運(yùn)算后的精確余數(shù)
MYSQL應(yīng)用
SELECT MOD(31,8)
MYSQL應(yīng)用
MYSQL應(yīng)用2、四舍五入函數(shù)TRUNCATE(X,Y)
MYSQL應(yīng)用TRUNCATE(X,Y)返回被舍去至小數(shù)點(diǎn)后y位的數(shù)字x.若y的值為0,則結(jié)果不帶有小數(shù)點(diǎn)或不帶有小數(shù)部分.
MYSQL應(yīng)用若y設(shè)為負(fù)數(shù),則截去(歸零)x小數(shù)點(diǎn)左邊起第y位開(kāi)始后面所有低位的值.
MYSQL應(yīng)用
SELECT TRUNCATE(1.32,1)
MYSQL應(yīng)用
MYSQL應(yīng)用TRUNCATE(1.32,1)保留小數(shù)點(diǎn)后一位數(shù)字,返回值為1.3
MYSQL應(yīng)用TIPS:ROUND(X,Y)函數(shù)在截取值的時(shí)候會(huì)四舍五入,而TRUNCATE(x,y)直接截取值,并不進(jìn)行四舍五入
MYSQL應(yīng)用3、求余函數(shù)HEX(X)和UNHEX(X)函數(shù)
MYSQL應(yīng)用有以下的代碼可以演示HEX和UNHEX的功能:
MYSQL應(yīng)用
SELECT HEX('this is a test str')
MYSQL應(yīng)用查詢(xún)的結(jié)果為:746869732069732061207465737420737472
MYSQL應(yīng)用
SELECT UNHEX('746869732069732061207465737420737472')
MYSQL應(yīng)用查詢(xún)的結(jié)果為:this is a test str
MYSQL應(yīng)用字符串函數(shù)
MYSQL應(yīng)用計(jì)算字符串字符數(shù)的函數(shù)
MYSQL應(yīng)用1、CHAR_LENGTH(STR)返回值為字符串str所包含的字符個(gè)數(shù).一個(gè)多字節(jié)字符算作一個(gè)單字符
MYSQL應(yīng)用
SELECT CHAR_LENGTH('DATE')
MYSQL應(yīng)用
?
2、合并字符串函數(shù)CONCAT_WS(x,s1,s2,......)
MYSQL應(yīng)用CONCAT_WS(x,s1,s2,......),CONCAT_WS代表CONCAT with Separator,是CONCAT()函數(shù)的特殊形式.
MYSQL應(yīng)用第一個(gè)參數(shù)x是其他參數(shù)的分隔符,分隔符的位置放在要連接的兩個(gè)字符串之間.分隔符可以是一個(gè)字符串,也可以是
MYSQL應(yīng)用其他參數(shù).如果分隔符為NULL,則結(jié)果為NULL.函數(shù)會(huì)忽略任何分隔符參數(shù)后的NULL值.
MYSQL應(yīng)用
SELECT CONCAT_WS('-','1st','2nd','3rd'),CONCAT_WS('-','1st',NULL,'3rd')
MYSQL應(yīng)用
MYSQL應(yīng)用CONCAT_WS('-','1st','2nd','3rd')使用分隔符‘-'將3個(gè)字符串連接成一個(gè)字符串,結(jié)果為“1st-2nd-3rd”;
MYSQL應(yīng)用CONCAT_WS('-','1st',NULL,'3rd')因?yàn)榈诙€(gè)值為NULL,所以第二個(gè)值不會(huì)出現(xiàn)在結(jié)果里
MYSQL應(yīng)用3、替換字符串的函數(shù)INSERT(S1,X,LEN,S2)
MYSQL應(yīng)用INSERT(S1,X,LEN,S2)函數(shù)跟SQLSERVER里的STUFF()函數(shù)的功能是一樣的,這里不作介紹了
MYSQL應(yīng)用4、填充字符串的函數(shù)LPAD(S1,LEN,S2)和RPAD(S1,LEN,S2)
MYSQL應(yīng)用LPAD(S1,LEN,S2)返回字符串s1,其左邊由字符串s2填補(bǔ)到len字符串長(zhǎng)度.假如s1的長(zhǎng)度大于len,則返回值被縮短至len字符.
MYSQL應(yīng)用LPAD()函數(shù)和RPAD()函數(shù)功能跟SQLSERVER里的 REPLACE()相似,不過(guò)功能更加強(qiáng)大
MYSQL應(yīng)用
SELECT LPAD('hello',4,'??'),LPAD('hello',10,'??')
MYSQL應(yīng)用
MYSQL應(yīng)用字符串“hello”長(zhǎng)度大于4,不需要填充,因此LPAD('hello',4,'??')只返回被縮短的長(zhǎng)度為4的子串
MYSQL應(yīng)用字符串“hello”長(zhǎng)度小于10,LPAD('hello',10,'??')返回結(jié)果為“?????hello”,左側(cè)填充“?”,長(zhǎng)度為10
MYSQL應(yīng)用5、RPAD(S1,LEN,S2)返回字符串s1,其右邊被字符串s2填補(bǔ)至len字符長(zhǎng)度.假如字符串s1的長(zhǎng)度大于len,則返回值被縮短到len字符長(zhǎng)度
MYSQL應(yīng)用
SELECT RPAD('hello',4,'?')
MYSQL應(yīng)用
MYSQL應(yīng)用?字符串“hello”長(zhǎng)度大于4,不需要填充,因此RPAD('hello',4,'?')只返回被縮短的長(zhǎng)度為4的子串"hell"
MYSQL應(yīng)用6、刪除空格的函數(shù)TRIM(S)
MYSQL應(yīng)用TRIM(S)刪除字符串s兩側(cè)的空格
MYSQL應(yīng)用MYSQL這里比SQLSERVER方便,SQLSERVER要?jiǎng)h除兩邊的空格,需要使用: SELECT LTRIM(RTRIM(' hello '))
MYSQL應(yīng)用
SELECT TRIM(' book ')
MYSQL應(yīng)用
MYSQL應(yīng)用刪除指定字符串的函數(shù)TRIM(S1 FROM S)
MYSQL應(yīng)用7、TRIM(S1 FROM S)刪除字符串s中兩端所有的子字符串s1.s1為可選項(xiàng),在未指定情況下,刪除空格
MYSQL應(yīng)用
SELECT TRIM('xy' FROM 'xyxboxyokxxyxy')
MYSQL應(yīng)用
MYSQL應(yīng)用?'xyxboxyokxxyxy'兩端的重復(fù)字符串“xy”,而中間的“xy”并不刪除,結(jié)果為
MYSQL應(yīng)用xboxyokx
MYSQL應(yīng)用8、重復(fù)生成字符串的函數(shù)REPEAT(S,N)
MYSQL應(yīng)用這個(gè)函數(shù)跟SQLSERVER里的REPLICATE()函數(shù)是一樣的,參數(shù)個(gè)數(shù)都是一樣的,這里不作介紹了
MYSQL應(yīng)用9、比較字符串大小的函數(shù)STRCMP(S1,S2)
MYSQL應(yīng)用STRCMP(S1,S2)若所有的字符串均相同,則返回0;若根據(jù)當(dāng)前分類(lèi)次序,第一個(gè)參數(shù)小于第二個(gè),則返回-1,其他情況返回1
MYSQL應(yīng)用
SELECT STRCMP('txt','txt2') ,STRCMP('txt2','txt'),STRCMP('txt','txt')
MYSQL應(yīng)用
MYSQL應(yīng)用“txt”小于“txt2”,因此 STRCMP('txt','txt2') 返回結(jié)果為-1
MYSQL應(yīng)用STRCMP('txt2','txt')返回結(jié)果為1
MYSQL應(yīng)用“txt”與“txt”相等,因此STRCMP('txt','txt')返回結(jié)果為0
MYSQL應(yīng)用10、匹配子串開(kāi)始位置的函數(shù)
MYSQL應(yīng)用LOCATE(STR1,STR)、POSITION(STR1 IN STR)、INSTR(STR,STR1)3個(gè)函數(shù)作用相同,返回子字符串str1在字符串str中的開(kāi)始位置
MYSQL應(yīng)用這三個(gè)函數(shù)跟SQLSERVER里的CHARINDEX()函數(shù)功能類(lèi)似
MYSQL應(yīng)用
SELECT LOCATE('ball','football'),POSITION('ball' IN 'football') ,INSTR('football','ball')
MYSQL應(yīng)用
MYSQL應(yīng)用子字符串“ball”在字符串“football”中從第5個(gè)字母位置開(kāi)始,因此3個(gè)函數(shù)返回結(jié)果都為5
MYSQL應(yīng)用11、返回指定位置的字符串的函數(shù)
MYSQL應(yīng)用ELT(N,字符串1,字符串2,字符串3,...,),若N=1,則返回值為字符串1,若N=2,則返回值為字符串2,以此類(lèi)推.
MYSQL應(yīng)用若N小于1或大于參數(shù)的數(shù)目,則返回值為NULL
MYSQL應(yīng)用
SELECT ELT(3,'1st','2nd','3rd'),ELT(3,'net','os')
MYSQL應(yīng)用
MYSQL應(yīng)用由結(jié)果可以看到,ELT(3,'1st','2nd','3rd')返回第3個(gè)位置的字符串“3rd”;指定返回字符串位置超出參數(shù)個(gè)數(shù),返回NULL
MYSQL應(yīng)用12、返回指定字符串位置的函數(shù)FIELD(S,S1,S2,...)
MYSQL應(yīng)用FIELD(S,S1,S2,...)返回字符串s在列表s1,s2,......中第一次出現(xiàn)的位置,在找不到s的情況下,返回值為0.
MYSQL應(yīng)用如果s為NULL,則返回值為0,原因是NULL不能同任何值進(jìn)行同等比較.
MYSQL應(yīng)用
SELECT FIELD('hi','hihi','hey','hi','bas') AS coll,
FIELD('hi','hihi','lo','hilo','foo') AS col2
MYSQL應(yīng)用
MYSQL應(yīng)用FIELD('hi','hihi','hey','hi','bas')函數(shù)中字符串hi出現(xiàn)在列表的第3個(gè)字符串位置,因此返回結(jié)果為3
MYSQL應(yīng)用FIELD('hi','hihi','lo','hilo','foo') 列表中沒(méi)有字符串hi,因此返回結(jié)果為0
MYSQL應(yīng)用13、返回子串位置的函數(shù)FIND_IN_SET(S1,S2)
MYSQL應(yīng)用FIND_IN_SET(S1,S2)返回字符串s1在字符串列表s2中出現(xiàn)的位置,字符串列表是一個(gè)由多個(gè)逗號(hào)
MYSQL應(yīng)用‘,'分開(kāi)的字符串組成的列表.如果s1不在s2或s2為空字符串,則返回值為0.如果任意一個(gè)參數(shù)為NULL,則返回值為NULL.
MYSQL應(yīng)用這個(gè)函數(shù)在第一個(gè)參數(shù)包含一個(gè)逗號(hào)‘,'時(shí)將無(wú)法正常運(yùn)行.
MYSQL應(yīng)用
SELECT FIND_IN_SET('hi','hihi,hey,hi,bas')
MYSQL應(yīng)用
MYSQL應(yīng)用雖然FIND_IN_SET(S1,S2)和FIELD(S,S1,S2,...)兩個(gè)函數(shù)格式不同,但作用類(lèi)似,都可以返回指定字符串在字符串列表中的位置
MYSQL應(yīng)用14、選取字符串的函數(shù)MAKE_SET(X,S1,S2,...)
MYSQL應(yīng)用MAKE_SET(X,S1,S2,...)返回由x的二進(jìn)制數(shù)指定的相應(yīng)位的字符串組成的字符串,s1對(duì)應(yīng)比特1,s2對(duì)應(yīng)比特01以此類(lèi)推.
MYSQL應(yīng)用s1,s2...中的NULL值不會(huì)被添加到結(jié)果中.
MYSQL應(yīng)用
SELECT MAKE_SET(1,'a','b','c') AS col1,
MAKE_SET(1|4,'hello','nice','world') AS col2
MYSQL應(yīng)用
1的二進(jìn)制值為0001,4的二進(jìn)制值為0100,1與4進(jìn)行異或操作之后的二進(jìn)制值為0101,從右到左第一位和第三位為1.
MYSQL應(yīng)用MAKE_SET(1,'a','b','c')返回第一個(gè)字符串
MYSQL應(yīng)用MAKE_SET(1|4,'hello','nice','world') 返回從左端開(kāi)始第一和第三個(gè)字符串組成的字符串
MYSQL應(yīng)用?
MYSQL應(yīng)用日期和時(shí)間函數(shù)
MYSQL應(yīng)用1、獲取當(dāng)前日期的函數(shù)和獲取當(dāng)前時(shí)間的函數(shù)
MYSQL應(yīng)用CURDATE()、CURRENT_DATE()、CURRENT_TIMESTAMP()、LOCALTIME()、NOW()、SYSDATE()
MYSQL應(yīng)用以上函數(shù)都是返回當(dāng)前日期和時(shí)間值,MYSQL的函數(shù)數(shù)量的確比SQLSERVER多很多,SQLSERVER獲取當(dāng)前時(shí)間和日期用的
MYSQL應(yīng)用函數(shù)是: SELECT GETDATE()
MYSQL應(yīng)用
SELECT NOW()
MYSQL應(yīng)用
MYSQL應(yīng)用返回UTC日期的函數(shù)和返回UTC時(shí)間的函數(shù)
MYSQL應(yīng)用MYSQL里返回UTC日期和時(shí)間是分開(kāi)的,而SQLSERVER里是一起的
MYSQL應(yīng)用
SELECT GETUTCDATE()
MYSQL應(yīng)用
MYSQL應(yīng)用MYSQL
MYSQL應(yīng)用
SELECT UTC_DATE(),UTC_TIME()
MYSQL應(yīng)用?
2、獲取月份的函數(shù)MONTHNAME(DATE)
MYSQL應(yīng)用MONTHNAME(DATE)函數(shù)返回日期date對(duì)應(yīng)月份的英文全名
MYSQL應(yīng)用
SELECT MONTHNAME('2013-8-2')
MYSQL應(yīng)用
MYSQL應(yīng)用返回8月份的英文
MYSQL應(yīng)用3、獲取季度、分鐘和秒鐘的函數(shù)
MYSQL應(yīng)用QUARTER(DATE)返回date對(duì)應(yīng)的一年中的季度值,范圍是從1~4
MYSQL應(yīng)用使用QUARTER(DATE)函數(shù)返回指定日期對(duì)應(yīng)的季度
MYSQL應(yīng)用
SELECT QUARTER('11-04-01')
MYSQL應(yīng)用
?
4月份在第二季度,所以返回2
MYSQL應(yīng)用4、MINUTE(TIME)返回time對(duì)應(yīng)的分鐘數(shù),范圍是從0~59
MYSQL應(yīng)用
SELECT MINUTE('11-02-03 10:10:06')
MYSQL應(yīng)用
MYSQL應(yīng)用返回10分鐘
MYSQL應(yīng)用5、SECOND(time) 返回time對(duì)應(yīng)的秒數(shù),范圍是從0~59
MYSQL應(yīng)用
SELECT SECOND('10:23:10')
MYSQL應(yīng)用
MYSQL應(yīng)用返回10秒
MYSQL應(yīng)用6、獲取日期的指定值的函數(shù)EXTRACT(type FROM date)
MYSQL應(yīng)用EXTRACT(type FROM date)這個(gè)函數(shù)跟SQLSERVER里的DATEPART()函數(shù)是一樣的
MYSQL應(yīng)用獲取日期中的年份
MYSQL應(yīng)用SQLSERVER
MYSQL應(yīng)用
SELECT DATEPART(YEAR,'2013-2-3')
MYSQL應(yīng)用
?
MYSQL
MYSQL應(yīng)用
SELECT EXTRACT(YEAR FROM '2013-2-3')
MYSQL應(yīng)用
MYSQL應(yīng)用7、時(shí)間和秒鐘轉(zhuǎn)換的函數(shù)
MYSQL應(yīng)用TIME_TO_SEC(time)返回已轉(zhuǎn)化為秒的time參數(shù),轉(zhuǎn)換公式為:小時(shí)*3600+分鐘*60+秒
MYSQL應(yīng)用
SELECT TIME_TO_SEC('23:22:00')
MYSQL應(yīng)用
?
SEC_TO_TIME(second)函數(shù)可以將秒轉(zhuǎn)換為小時(shí)、分鐘和秒數(shù)的second參數(shù)值
MYSQL應(yīng)用
SELECT SEC_TO_TIME('84120')
?MYSQL應(yīng)用SEC_TO_TIME(second)函數(shù)和TIME_TO_SEC(time)函數(shù)互為反函數(shù)
MYSQL應(yīng)用8、計(jì)算日期和時(shí)間的函數(shù)
MYSQL應(yīng)用MYSQL里計(jì)算日期和時(shí)間的函數(shù)比較多
MYSQL應(yīng)用增加日期:DATE_ADD(date,interval? expr type),ADDDATE(date,interval? expr type)
MYSQL應(yīng)用減去日期:DATE_SUB(date,interval? expr type),SUBDATE(date,interval? expr type)
MYSQL應(yīng)用增加時(shí)間:ADD_TIME(date,expr)
MYSQL應(yīng)用減去時(shí)間:SUBTIME(date,expr)
MYSQL應(yīng)用時(shí)間差:DATEDIFF()
MYSQL應(yīng)用日期和時(shí)間格式化:
MYSQL應(yīng)用DATE_FORMAT(date,format)
MYSQL應(yīng)用TIME_FORMAT(time,format)
MYSQL應(yīng)用返回日期時(shí)間字符串的顯示格式:GET_FORMAT(val_type,format_type)
MYSQL應(yīng)用相對(duì)來(lái)說(shuō),SQLSERVER在時(shí)間日期方面的計(jì)算就沒(méi)有那么多函數(shù)了
MYSQL應(yīng)用基本上SQLSERVER利用下面兩個(gè)函數(shù)來(lái)通殺日期時(shí)間計(jì)算的場(chǎng)景
MYSQL應(yīng)用SELECT DATEADD(),DATEDIFF()
條件判斷函數(shù)
MYSQL應(yīng)用條件判斷函數(shù)也稱(chēng)為流程控制函數(shù),根據(jù)滿足的條件的不同,執(zhí)行相應(yīng)的流程.
MYSQL應(yīng)用MYSQL中進(jìn)行條件判斷的函數(shù)有IF、IFNULL、CASE
MYSQL應(yīng)用雖然SQLSERVER里也有IF和CASE,不過(guò)MYSQL里的IF語(yǔ)句的語(yǔ)法跟SQLERVER有很大出入
MYSQL應(yīng)用?
MYSQL應(yīng)用1、IF(expr,v1,v2)函數(shù)
MYSQL應(yīng)用IF(expr,v1,v2)如果表達(dá)式expr是TRUE(expr<>0 and expr<>NULL),則IF()的返回值為v1;
MYSQL應(yīng)用否則返回值為v2.IF()的返回值為數(shù)字值或字符串值,具體情況視其所在語(yǔ)境而定
MYSQL應(yīng)用
SELECT IF(1>2,2,3)
MYSQL應(yīng)用
MYSQL應(yīng)用1>2的結(jié)果為FALSE,IF(1>2,2,3)返回第二個(gè)表達(dá)式的值3.
MYSQL應(yīng)用TIPS:如果v1或v2中只有一個(gè)明確是NULL,則IF()函數(shù)的結(jié)果類(lèi)型為非NULL表達(dá)式的結(jié)果類(lèi)型.
MYSQL應(yīng)用2、IFNULL(V1,V2)函數(shù)
MYSQL應(yīng)用IFNULL(V1,V2)假如v1不為NULL,則IFNULL(V1,V2)的返回值為v1;否則其返回值為v2.
MYSQL應(yīng)用IFNULL()的返回值是數(shù)字或是字符串,具體情況視語(yǔ)境而定
MYSQL應(yīng)用
SELECT IFNULL(1,2),IFNULL(NULL,10)
MYSQL應(yīng)用
MYSQL應(yīng)用IFNULL(1,2)雖然第二個(gè)值也不為空,但返回結(jié)果依然是第一個(gè)值;
MYSQL應(yīng)用IFNULL(NULL,10)第一個(gè)值為空,因此返回“10”
MYSQL應(yīng)用注意:IFNULL(V1,V2)函數(shù)跟SQLSERVER里的 SELECT NULLIF() 函數(shù)不一樣
MYSQL應(yīng)用SQLSERVER里的NULLIF函數(shù)
MYSQL應(yīng)用需要兩個(gè)參數(shù),如果兩個(gè)指定的表達(dá)式等價(jià),則返回null
MYSQL應(yīng)用例子:NULLIF(a,b)
MYSQL應(yīng)用說(shuō)明:如果a和b是相等的,那么返回NULL,如果不相等返回a
MYSQL應(yīng)用select NULLIF('eqeqweqwe','1') 結(jié)果是eqeqweqwe
MYSQL應(yīng)用select NULLIF(1,1) 結(jié)果是NULL
MYSQL應(yīng)用a和b的類(lèi)型要一致
MYSQL應(yīng)用3、CASE函數(shù)
MYSQL應(yīng)用注意:一個(gè)CASE表達(dá)式的默認(rèn)返回值類(lèi)型是任何返回值的相容集合類(lèi)型,但具體情況視其所在語(yǔ)境而定.
MYSQL應(yīng)用如果用字符串語(yǔ)境中,則返回結(jié)果為字符串.如果用在數(shù)字語(yǔ)境中,則返回結(jié)果為十進(jìn)制、實(shí)數(shù)值或整數(shù)值
MYSQL應(yīng)用這個(gè)數(shù)據(jù)類(lèi)型在拼接SQL語(yǔ)句的時(shí)候特別容易忽略,有時(shí)候會(huì)在拼接SQL語(yǔ)句的時(shí)候,case 后面的表達(dá)式或者when后面的表達(dá)式不一致報(bào)錯(cuò)!
MYSQL應(yīng)用參考文章:http://support.microsoft.com/kb/969467/zh-cn
MYSQL應(yīng)用修補(bǔ)程序: 錯(cuò)誤消息,當(dāng)您運(yùn)行查詢(xún)時(shí),SQL Server 2008年中使用 CASE 函數(shù):"轉(zhuǎn)換失敗時(shí)轉(zhuǎn)換為數(shù)據(jù)類(lèi)型 < Type2 > < Type1 > 值 < 值 >"
MYSQL應(yīng)用在MSDN論壇也有一個(gè)相關(guān)的帖子,大概是因?yàn)槠唇觭ql的時(shí)候case 后面的表達(dá)式值的數(shù)據(jù)類(lèi)型和else后面的表達(dá)式值的數(shù)據(jù)類(lèi)型不一致導(dǎo)致拼接sql失敗
MYSQL應(yīng)用具體的帖子地址忘記了,也找不到,如果找到以后會(huì)補(bǔ)充上
MYSQL應(yīng)用系統(tǒng)信息函數(shù)
MYSQL應(yīng)用1、獲取MYSQL版本號(hào)、連接數(shù)和數(shù)據(jù)庫(kù)名的函數(shù)
MYSQL應(yīng)用VERSION()返回指示MYSQL服務(wù)器版本的字符串.這個(gè)字符串使用utf8字符集
MYSQL應(yīng)用
SELECT VERSION()
MYSQL應(yīng)用
?
2、CONNECTION_ID()返回MYSQL服務(wù)器當(dāng)前連接的次數(shù),每個(gè)連接都有各自唯一的ID
MYSQL應(yīng)用查看當(dāng)前用戶(hù)的連接數(shù)
MYSQL應(yīng)用
SELECT CONNECTION_ID()
MYSQL應(yīng)用
MYSQL應(yīng)用這里返回1,返回值根據(jù)登錄的次數(shù)會(huì)有不同.
MYSQL應(yīng)用3、SHOW PROCESSLIST;
MYSQL應(yīng)用4、SHOW FULL PROCESSLIST;
MYSQL應(yīng)用processlist命令的輸出結(jié)果顯示了有哪些線程在運(yùn)行,不僅可以查看當(dāng)前所有的連接數(shù),還可以查看當(dāng)前的連接狀態(tài)
MYSQL應(yīng)用幫助識(shí)別出有問(wèn)題的查詢(xún)語(yǔ)句等.
MYSQL應(yīng)用?
MYSQL應(yīng)用如果是root帳號(hào),能看到所有用戶(hù)的當(dāng)前連接.如果是其他普通帳號(hào),則只能看到自己占用的連接.showprocesslist只能列出當(dāng)前100條
MYSQL應(yīng)用如果想全部列出,可以使用SHOW FULL PROCESSLIST命令
MYSQL應(yīng)用SHOW PROCESSLIST
SHOW FULL PROCESSLIST
show full processlist會(huì)看到連接使用的內(nèi)存
MYSQL應(yīng)用
show processlist
MYSQL應(yīng)用
MYSQL應(yīng)用
show full processlist
MYSQL應(yīng)用
MYSQL應(yīng)用?各個(gè)列的含義
MYSQL應(yīng)用(1)id列,用戶(hù)登錄mysql時(shí),系統(tǒng)分配的“connection_id”
MYSQL應(yīng)用(2)user列,顯示當(dāng)前用戶(hù).如果不是root,這個(gè)命令就只顯示用戶(hù)權(quán)限范圍的sql語(yǔ)句
MYSQL應(yīng)用(3)host列,顯示這個(gè)語(yǔ)句是從哪個(gè)ip的哪個(gè)端口上發(fā)的,可以用來(lái)跟蹤出現(xiàn)問(wèn)題語(yǔ)句的用戶(hù)
MYSQL應(yīng)用(4)db列,顯示這個(gè)進(jìn)程目前連接的是哪個(gè)數(shù)據(jù)庫(kù)
MYSQL應(yīng)用(5)command列,顯示當(dāng)前連接的執(zhí)行的命令,一般取值為休眠(sleep),查詢(xún)(query),連接(connect)
MYSQL應(yīng)用(6)time列,顯示這個(gè)狀態(tài)持續(xù)的時(shí)間,單位是秒
MYSQL應(yīng)用(7)state列,顯示使用當(dāng)前連接的sql語(yǔ)句的狀態(tài),很重要的列,后續(xù)會(huì)有所有狀態(tài)的描述,state只是語(yǔ)句執(zhí)行中的某一個(gè)狀態(tài).一個(gè)sql語(yǔ)句,
MYSQL應(yīng)用以查詢(xún)?yōu)槔?/p>
MYSQL應(yīng)用可能需要經(jīng)過(guò)
MYSQL應(yīng)用copying to tmp table,
MYSQL應(yīng)用sorting result,
MYSQL應(yīng)用sending data
MYSQL應(yīng)用等狀態(tài)才可以完成
MYSQL應(yīng)用(8)info列,顯示這個(gè)sql語(yǔ)句,是判斷問(wèn)題語(yǔ)句的一個(gè)重要依據(jù).
MYSQL應(yīng)用5、DATABASE()和SCHEMA()函數(shù)返回使用utf8字符集的默認(rèn)(當(dāng)前)數(shù)據(jù)庫(kù)名
MYSQL應(yīng)用
SELECT DATABASE(),SCHEMA()
MYSQL應(yīng)用
可以看到,兩個(gè)函數(shù)的作用相同
MYSQL應(yīng)用6、獲取用戶(hù)名的函數(shù)
MYSQL應(yīng)用USER()、CURRENT_USER()、CURRENT_USER、SYSTEM_USER()、SESSION_USER()
MYSQL應(yīng)用這幾個(gè)函數(shù)返回當(dāng)前被MYSQL服務(wù)器驗(yàn)證的用戶(hù)名和主機(jī)名組合.這個(gè)值符合確定當(dāng)前登錄用戶(hù)
MYSQL應(yīng)用存取權(quán)限的MYSQL帳戶(hù).一般情況下,這幾個(gè)函數(shù)的返回值是相同的.
MYSQL應(yīng)用
SELECT USER(),CURRENT_USER(),SYSTEM_USER()
MYSQL應(yīng)用
返回結(jié)果指示了當(dāng)前帳戶(hù)連接服務(wù)器的用戶(hù)名以及所連接的客戶(hù)主機(jī),root為當(dāng)前登錄的用戶(hù)名,localhost為登錄的主機(jī)名
MYSQL應(yīng)用7、獲取字符串的字符集和排序方式的函數(shù)
MYSQL應(yīng)用CHARSET(STR)返回字符串str自變量的字符集
MYSQL應(yīng)用
SELECT CHARSET('abc') ,CHARSET(CONVERT('abc' USING latin1)),CHARSET(VERSION())
MYSQL應(yīng)用
CHARSET('abc')返回系統(tǒng)默認(rèn)的字符集utf8;
MYSQL應(yīng)用CHARSET(CONVERT('abc' USING latin1))返回的字符集為latin1;
MYSQL應(yīng)用VERSION()返回的字符串使用utf8字符集,因此CHARSET返回結(jié)果為utf8
MYSQL應(yīng)用8、COLLATION(str)返回字符串str的字符排列方式
MYSQL應(yīng)用
SELECT COLLATION(_latin2 'abc'),COLLATION(CONVERT('abc' USING utf8))
MYSQL應(yīng)用
可以看到,使用不同字符集時(shí)字符串的排列方式不同
MYSQL應(yīng)用9、獲取最后一個(gè)自動(dòng)生成的ID值的函數(shù)
MYSQL應(yīng)用LAST_INSERT_ID()自動(dòng)返回最后一個(gè)INSERT或UPDATE為AUTO_INCREMENT列設(shè)置的第一個(gè)發(fā)生的值
MYSQL應(yīng)用?
MYSQL應(yīng)用(1)一次插入一條記錄
MYSQL應(yīng)用首先創(chuàng)建表worker,其ID字段帶有AUTO_INCREMENT約束
MYSQL應(yīng)用
CREATE TABLE worker(
id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
NAME VARCHAR(30)
)
MYSQL應(yīng)用分別單獨(dú)向表worker插入2條記錄
MYSQL應(yīng)用
INSERT INTO worker VALUES(NULL,'jimmy');
INSERT INTO worker VALUES(NULL,'tom')
SELECT * FROM worker
MYSQL應(yīng)用查看已經(jīng)插入的數(shù)據(jù)可以發(fā)現(xiàn),最后一條插入的記錄的ID字段值為2,使用LAST_INSERT_ID()查看最后自動(dòng)生成的ID值
MYSQL應(yīng)用
SELECT LAST_INSERT_ID()
MYSQL應(yīng)用
?
?可以看到,一次插入一條記錄時(shí),返回值為最后一條插入記錄的ID值
MYSQL應(yīng)用(2)一次同時(shí)插入多條記錄
MYSQL應(yīng)用?接下來(lái),向表中插入多條記錄
MYSQL應(yīng)用
INSERT INTO worker VALUES(NULL,'kevin'),(NULL,'michal'),(NULL,'nick')
MYSQL應(yīng)用查詢(xún)已經(jīng)插入的記錄
MYSQL應(yīng)用
SELECT * FROM worker
MYSQL應(yīng)用
MYSQL應(yīng)用可以看到最后一條記錄的ID字段值為5,使用LAST_INSERT_ID()查看最后自動(dòng)生成的ID值
MYSQL應(yīng)用
SELECT LAST_INSERT_ID()
MYSQL應(yīng)用
MYSQL應(yīng)用結(jié)果顯示,ID字段值不是5而是3,這是為什麼呢?
MYSQL應(yīng)用在向數(shù)據(jù)表插入一條記錄時(shí),LAST_INSERT_ID()返回帶有AUTO_INCREMENT約束的字段最新生成的值2;繼續(xù)向表
MYSQL應(yīng)用中同時(shí)添加3條記錄,這時(shí)候因?yàn)楫?dāng)使用一條INSERT語(yǔ)句插入多個(gè)行時(shí),LAST_INSERT_ID只返回插入的第一行數(shù)據(jù)
MYSQL應(yīng)用時(shí)產(chǎn)生的值,在這里為第3條記錄.之所以這樣,是因?yàn)檫@使依靠其他服務(wù)器復(fù)制同樣的INSERT語(yǔ)句變得簡(jiǎn)單
MYSQL應(yīng)用TIPS:LAST_INSERT_ID是與table無(wú)關(guān)的,如果向表a插入數(shù)據(jù)后,再向表b插入數(shù)據(jù),LAST_INSERT_ID返回表b中的ID值
MYSQL應(yīng)用這里跟SQLSERVER不一樣
MYSQL應(yīng)用使用下面腳本來(lái)測(cè)試,無(wú)論使用方式一還是方式二,當(dāng)前的LAST_INSERT_ID都是最后一個(gè)值
MYSQL應(yīng)用
CREATE TABLE [dbo].[aaa](
[a] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[name] [nvarchar](50) NOT NULL
) ON [PRIMARY]
MYSQL應(yīng)用
USE [sss]
SELECT * FROM [dbo].[aaa]
INSERT INTO [dbo].[aaa]
( [name] )
VALUES ( N'sdfsdf' -- name - nvarchar(50)
)
SELECT * FROM [dbo].[aaa]
INSERT INTO [dbo].[aaa]
( [name] )
VALUES ( N'sdf969' -- name - nvarchar(50)
),('lkjj96'),('565656')
SELECT IDENT_CURRENT('aaa')
SELECT * FROM [dbo].[aaa]
MYSQL應(yīng)用
MYSQL應(yīng)用
MYSQL應(yīng)用加密函數(shù)
MYSQL應(yīng)用1、加密函數(shù)PASSWORD(STR)
MYSQL應(yīng)用PASSWORD(STR)從原文密碼str計(jì)算并返回加密后的密碼字符串,當(dāng)參數(shù)為NULL時(shí),返回NULL
MYSQL應(yīng)用
SELECT PASSWORD('NEWPWD')
MYSQL應(yīng)用
MYSQL將PASSWORD函數(shù)加密后的密碼保存到用戶(hù)權(quán)限表中
MYSQL應(yīng)用TIPS:PASSWOR()函數(shù)在MYSQL服務(wù)器的鑒定系統(tǒng)中使用;不應(yīng)將他用在個(gè)人應(yīng)用程序中,PASSWORD()函數(shù)加密是單向的(不可逆)
MYSQL應(yīng)用PASSWORD執(zhí)行密碼加密與UNIX中密碼加密方式不同
MYSQL應(yīng)用2、加密函數(shù)MD5(str)
MYSQL應(yīng)用MD5(str)為字符串算出一個(gè)MD5 128比特校驗(yàn)和.該值以32位十六進(jìn)制數(shù)字的二進(jìn)制字符串形式返回,若參數(shù)為NULL,則會(huì)返回NULL
MYSQL應(yīng)用
SELECT MD5('123')
MYSQL應(yīng)用
?
3、加密函數(shù)ENCODE(str,pswd_str)
MYSQL應(yīng)用ENCODE(str,pswd_str)使用pswd_str作為密碼,加密str.使用DECODE()解密結(jié)果,結(jié)果是一個(gè)和str長(zhǎng)度相同的二進(jìn)制字符串
MYSQL應(yīng)用
SELECT ENCODE('nihao','123')
MYSQL應(yīng)用
可以看到加密后的結(jié)果為亂碼
MYSQL應(yīng)用?4、解密函數(shù)DECODE(crypt_str,pswd_str)
MYSQL應(yīng)用?DECODE(crypt_str,pswd_str)使用pswd_str作為密碼,解密加密字符串crypt_str,crypt_str是由ENCODE()返回的字符串
MYSQL應(yīng)用
SELECT DECODE(ENCODE('nihao','123'),'123')
MYSQL應(yīng)用
可以看到,解密出來(lái)的字符串
MYSQL應(yīng)用ENCODE()和DECODE互為反函數(shù)
MYSQL應(yīng)用其他函數(shù)
MYSQL應(yīng)用1、格式化函數(shù)FORMAT(x,n)
MYSQL應(yīng)用FORMAT(x,n)將數(shù)字x格式化,并以四舍五入的方式保留小數(shù)點(diǎn)后n位,結(jié)果以字符串的形式返回.
MYSQL應(yīng)用若n為0,則返回結(jié)果函數(shù)不含小數(shù)部分
MYSQL應(yīng)用
SELECT FORMAT(12332.123465,4)
MYSQL應(yīng)用
FORMAT(12332.123465,4)保留4位小數(shù)點(diǎn)值,并進(jìn)行四舍五入,結(jié)果為12,332.1235
MYSQL應(yīng)用2、不同進(jìn)制的數(shù)字轉(zhuǎn)換的函數(shù)
MYSQL應(yīng)用CONV(N,from_base,to_base)函數(shù)進(jìn)行不同進(jìn)制數(shù)間的轉(zhuǎn)換.
MYSQL應(yīng)用
SELECT CONV('a',16,2)
MYSQL應(yīng)用
?CONV('a',16,2)將十六進(jìn)制的a轉(zhuǎn)換為二進(jìn)制表示的數(shù)值.
MYSQL應(yīng)用3、IP地址與數(shù)字相互轉(zhuǎn)換的函數(shù)
MYSQL應(yīng)用INET_ATON(expr)給出一個(gè)作為字符串的網(wǎng)絡(luò)地址的點(diǎn)地址表示,返回一個(gè)代表該地址數(shù)值的整數(shù).
MYSQL應(yīng)用地址可以是4或8比特地址
MYSQL應(yīng)用INET_NTOA(expr)給定一個(gè)數(shù)字網(wǎng)絡(luò)地址(4或8比特),返回作為字符串的該地址的點(diǎn)地址表示.
MYSQL應(yīng)用4、加鎖函數(shù)和解鎖函數(shù)
MYSQL應(yīng)用GET_LOCK(str,timeout)設(shè)法使用字符串str給定的名字得到一個(gè)鎖,超時(shí)為timeout秒.
MYSQL應(yīng)用RELEASE_LOCK(str)解開(kāi)被GET_LOCK()獲取的,用字符串str所命名的鎖.
MYSQL應(yīng)用IS_FREE_LOCK(str)檢查名為str的鎖是否可以使用
MYSQL應(yīng)用IS_USED_LOCK(str)檢查名為str的鎖是否正在被使用
MYSQL應(yīng)用5、重復(fù)執(zhí)行指定操作的函數(shù)
MYSQL應(yīng)用BENCHMARK(count,expr)函數(shù)重復(fù)count次執(zhí)行表達(dá)式expr.他可以用于計(jì)算MYSQL處理表達(dá)式的速度.
MYSQL應(yīng)用結(jié)果值通常為0(0只是表示處理過(guò)程很快,并不是沒(méi)有花費(fèi)時(shí)間)
MYSQL應(yīng)用另一個(gè)作用是他可以在MYSQL客戶(hù)端內(nèi)部報(bào)告語(yǔ)句執(zhí)行的時(shí)間.
MYSQL應(yīng)用首先,使用PASSWORD函數(shù)加密密碼
MYSQL應(yīng)用
SELECT PASSWORD('nihao')
MYSQL應(yīng)用
可以看到PASSWORD()函數(shù)執(zhí)行花費(fèi)的時(shí)間為0.00098秒
MYSQL應(yīng)用下面使用BENCHMARK函數(shù)重復(fù)執(zhí)行PASSWORD操作500000次
MYSQL應(yīng)用
SELECT BENCHMARK(500000,PASSWORD('nihao'))
MYSQL應(yīng)用
由此可以看出,使用BENCHMARK執(zhí)行500000次的時(shí)間為0.49690秒,明顯比執(zhí)行一次的時(shí)間延長(zhǎng)了.
MYSQL應(yīng)用TIPS:BENCHMARK報(bào)告的時(shí)間是客戶(hù)端經(jīng)過(guò)的時(shí)間,而不是在服務(wù)器端的CPU時(shí)間,每次執(zhí)行后報(bào)告的時(shí)間并不一定是相同的.
MYSQL應(yīng)用6、改變字符集的函數(shù)
MYSQL應(yīng)用CONVERT(...using...)帶有USING的CONVERT()函數(shù)被用來(lái)在不同的字符集之間轉(zhuǎn)化數(shù)據(jù).
MYSQL應(yīng)用
SELECT CHARSET('string'),CHARSET(CONVERT('string' USING latin1))
MYSQL應(yīng)用
默認(rèn)為utf8字符集,通過(guò)CONVERT()將字符串“string”的默認(rèn)字符集改為latin1
MYSQL應(yīng)用?
MYSQL應(yīng)用7、改變數(shù)據(jù)類(lèi)型的函數(shù)
MYSQL應(yīng)用CAST(x,AS type)和CONVERT(x,type)函數(shù)將一個(gè)類(lèi)型的值轉(zhuǎn)換為另一個(gè)類(lèi)型的值,可轉(zhuǎn)換的type有:
MYSQL應(yīng)用BINARY、CHAR(n)、DATE、TIME、DATETIME、DECIMAL、SIGNED、UNSIGNED
MYSQL應(yīng)用在SQLSERVER里也是使用這兩個(gè)函數(shù)進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換的~
MYSQL應(yīng)用
SELECT CAST(100 AS CHAR(2)),CONVERT('2013-8-9 12:12:12',TIME)
MYSQL應(yīng)用
MYSQL應(yīng)用可以看到, CAST(100 AS CHAR(2))將整數(shù)數(shù)據(jù)100轉(zhuǎn)換為帶有2個(gè)顯示寬度的字符串類(lèi)型,結(jié)果為10
MYSQL應(yīng)用CONVERT('2013-8-9 12:12:12',TIME)將DATETIME類(lèi)型的值,轉(zhuǎn)換為T(mén)IME類(lèi)型值,結(jié)果為“12:12:12”
MYSQL應(yīng)用總結(jié)
MYSQL應(yīng)用這一節(jié)簡(jiǎn)單介紹了MYSQL里的一些函數(shù),并且比較了與SQLSERVER的區(qū)別?
MYSQL應(yīng)用
TIPS:
MYSQL應(yīng)用1、MYSQL中,日期時(shí)間以字符串形式存儲(chǔ)在數(shù)據(jù)表中,因此可以使用字符串函數(shù)分別截取日期時(shí)間值的不同部分
MYSQL應(yīng)用2、修改默認(rèn)的字符集,更改MYSQL默認(rèn)的字符集,在Windows中,只需要修改my.ini,該文件在MYSQL安裝目錄下.
MYSQL應(yīng)用修改配置文件中的default-character-set和character-set-server參數(shù)值,將其改為想要的字符集名稱(chēng),如:
MYSQL應(yīng)用gbk、gb2312、latin1等,修改完之后,重啟MYSQL服務(wù),即可生效.
MYSQL應(yīng)用如果不確定當(dāng)前使用的字符集,可以使用下面的SQL語(yǔ)句來(lái)查看當(dāng)前字符集進(jìn)行對(duì)比
MYSQL應(yīng)用
SHOW VARIABLES LIKE 'character_set_%'
MYSQL應(yīng)用?
MYSQL應(yīng)用如有不對(duì)的地方,歡迎大家拍磚o(∩_∩)o
MYSQL應(yīng)用
控制流程函數(shù)
編輯
[1] a) CASE WHEN THEN 函數(shù)
語(yǔ)法: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 ;
函數(shù)用法說(shuō)明:在第一個(gè)方案中, 當(dāng)滿足條件value =compare-value 時(shí),返回對(duì)應(yīng)的result,否則返回ELSE后的result.
在第二個(gè)方案中,當(dāng)滿足條件condition時(shí),返回對(duì)應(yīng)的result,否則返回ELSE后的result.
兩種方案中,如果都不滿足而且如果沒(méi)有ELSE 部分,則返回值為NULL
b) IF 函數(shù)用法
語(yǔ)法: IF(expr1,expr2,expr3)
函數(shù)用法說(shuō)明:如果 expr1 是 TRUE (expr1 <> 0 and expr1 <> NULL) ,則 IF() 的返回值為 expr2 ; 否則返回值則為 expr3 . IF() 的返回值為數(shù)字值或字符串值,具體情況視其所在語(yǔ)境而定
c) IFNULL 函數(shù)
語(yǔ)法: IFNULL(expr1,expr2)
函數(shù)用法說(shuō)明:假如 expr1 不為 NULL ,則 IFNULL() 的返回值為 expr1 ; 否則其返回值為 expr2 . IFNULL() 的返回值是數(shù)字或是字符串,具體情況取決于其所使用的語(yǔ)境
2字符串函數(shù)
編輯
a) 函數(shù) ascii(str)
函數(shù)用法說(shuō)明:返回值為字符串 str 的最左字符的數(shù)值.假如 str 為空字符串,則返回值為 0 .假如 str 為 NULL ,則返回值為 NULL . ASCII() 用于帶有從 0 到 255 的數(shù)值的字符
b) 函數(shù) BIN(N)
函數(shù)用法說(shuō)明:返回值為 N 的二進(jìn)制值的字符串表示,其中 N 為一個(gè) longlong (BIGINT) 數(shù)字.這等同于 CONV(N ,10,2) .假如 N 為 NULL ,則返回值為 NULL .
c) 函數(shù)CHAR(N ,... [USING charset ])
函數(shù)用法說(shuō)明: CHAR() 將每個(gè)參數(shù) N 理解為一個(gè)整數(shù),其返回值為一個(gè)包含這些整數(shù)的代碼值所給出的字符的字符串. NULL 值被省略.
d) 函數(shù)CHAR_LENGTH(str )
函數(shù)使用說(shuō)明:返回值為字符串 str 的長(zhǎng)度,長(zhǎng)度的單位為字符.一個(gè)多字節(jié)字符算作一個(gè)單字符.對(duì)于一個(gè) 包含五個(gè)二字節(jié)字符集 , LENGTH() 返回值為 10, 而 CHAR_LENGTH() 的返回值為 5
e) 函數(shù) CHARACTER_LENGTH(str )
函數(shù)使用說(shuō)明: CHARACTER_LENGTH() 是 CHAR_LENGTH() 的同義詞.
f) 函數(shù) COMPRESS(string_to_compress )
函數(shù)使用說(shuō)明: COMPRESS( 壓縮一個(gè)字符串.這個(gè)函數(shù)要求 MySQL 已經(jīng)用一個(gè)
諸如 zlib 的壓縮庫(kù)壓縮過(guò). 否則,返回值始終是 NULL . UNCOMPRESS() 可將壓縮過(guò)的字符串進(jìn)行解壓縮 ) .
g) 函數(shù) CONCAT(str1 ,str2 ,...)
函數(shù)使用說(shuō)明:返回結(jié)果為連接參數(shù)產(chǎn)生的字符串.如有任何一個(gè)參數(shù)為 NULL ,則
返回值為 NULL .或許有一個(gè)或多個(gè)參數(shù). 如果所有參數(shù)均為非二進(jìn)制字符串,則結(jié)果為非二進(jìn)制字符串. 如果自變量中含有任一二進(jìn)制字符串,則結(jié)果為一個(gè)二進(jìn)制字符串.一個(gè)數(shù)字參數(shù)被轉(zhuǎn)化為與之相等的二進(jìn)制字符串格式;若要避免這種情況,可使用顯式類(lèi)型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col)
h) 函數(shù) CONCAT_WS(separator ,str1 ,str2 ,...)
函數(shù)使用說(shuō)明: CONCAT_WS() 代表 CONCAT With Separator ,是 CONCAT() 的
特殊形式. 第一個(gè)參數(shù)是其它參數(shù)的分隔符.分隔符的位置放在要連接的兩個(gè)字符串之間.分隔符可以是一個(gè)字符串,也可以是其它參數(shù).如果分隔符為 NULL ,則結(jié)果為 NULL .函數(shù)會(huì)忽略任何分隔符參數(shù)后的 NULL 值.
i) 函數(shù)CONV(N from_base, to_base)
函數(shù)使用說(shuō)明:不同數(shù)基間轉(zhuǎn)換數(shù)字.返回值為數(shù)字的 N 字符串表示,由 from_base 基轉(zhuǎn)化為 to_base 基.如有任意一個(gè)參數(shù)為 NULL ,則返回值為 NULL .自變量 N 被理解為一個(gè)整數(shù),但是可以被指定為一個(gè)整數(shù)或字符串.最小基數(shù)為 2 ,而最大基數(shù)則為 36 . If to_base 是一個(gè)負(fù)數(shù),則 N 被看作一個(gè)帶符號(hào)數(shù).否則, N 被看作無(wú)符號(hào)數(shù). CONV() 的運(yùn)行精確度為 64 比特.
j) 函數(shù) ELT(N ,str1 ,str2 ,str3 ,...)
函數(shù)使用說(shuō)明:若 N = 1 ,則返回值為 str1 ,若 N = 2 ,則返回值為 str2 ,以此
類(lèi)推. 若 N 小于 1 或大于參數(shù)的數(shù)目,則返回值為 NULL . ELT() 是 FIELD() 的補(bǔ)數(shù)
k) 函數(shù) EXPORT_SET(bits ,on ,off [,separator [,number_of_bits ]])
函數(shù)使用說(shuō)明: 返回值為一個(gè)字符串,其中對(duì)于 bits 值中的每個(gè)位組,可以得到
一個(gè) on 字符串,而對(duì)于每個(gè)清零比特位,可以得到一個(gè) off 字符串. bits 中的比特值按照從右到左的順序接受檢驗(yàn) ( 由低位比特到高位比特 ) .字符串被分隔字符串分開(kāi) ( 默認(rèn)為逗號(hào) ‘,') ,按照從左到右的順序被添加到結(jié)果中. number_of_bits 會(huì)給出被檢驗(yàn)的二進(jìn)制位數(shù) ( 默認(rèn)為 64) .
l) 函數(shù) FIELD(str, str1, str2, str3, …...)
函數(shù)使用說(shuō)明:返回值為 str1 , str2 , str3 ,…… 列表中的 str 指數(shù).在找不到 str 的情況下,返回值為 0 .如果所有對(duì)于 FIELD() 的參數(shù)均為字符串,則所有參數(shù)均按照字符串進(jìn)行比較.如果所有的參數(shù)均為數(shù)字,則按照數(shù)字進(jìn)行比較.否則,參數(shù)按照雙倍進(jìn)行比較.如果 str 為 NULL ,則返回值為 0 ,原因是 NULL 不能同任何值進(jìn)行同等比較. FIELD() 是 ELT() 的補(bǔ)數(shù).
m) 函數(shù)FIND_IN_SET(str, strlist)
函數(shù)使用說(shuō)明: 假如字符串 str 在由 N 子鏈組成的字符串列表 strlist 中, 則返
回值的范圍在 1 到 N 之間 .一個(gè)字符串列表就是一個(gè)由一些被 ‘,' 符號(hào)分開(kāi)的自鏈組成的字符串.如果第一個(gè)參數(shù)是一個(gè)常數(shù)字符串,而第二個(gè)是 type SET 列,則 FIND_IN_SET() 函數(shù)被優(yōu)化,使用比特計(jì)算.如果 str 不在 strlist 或 strlist 為空字符串,則返回值為 0 .如任意一個(gè)參數(shù)為 NULL ,則返回值為 NULL . 這個(gè)函數(shù)在第一個(gè)參數(shù)包含一個(gè)逗號(hào) (‘,') 時(shí)將無(wú)法正常運(yùn)行.
n) 函數(shù) FORMAT(X ,D )
函數(shù)使用說(shuō)明: 將 number X 設(shè)置為格式 '#,###,###.##', 以四舍五入的方式保留到小數(shù)點(diǎn)后 D 位 , 而返回結(jié)果為一個(gè)字符串.
o) 函數(shù) HEX(N_or_S )
函數(shù)使用說(shuō)明:如果N_OR_S 是一個(gè)數(shù)字,則返回一個(gè) 十六進(jìn)制值 N 的 字符串表示,在這里, N 是一個(gè)longlong (BIGINT) 數(shù).這相當(dāng)于 CONV(N,10,16) .如果N_OR_S 是一個(gè)字符串,則返回值為一個(gè)N_OR_S 的十六進(jìn)制字符串表示,其中每個(gè)N_OR_S 里的每個(gè)字符被轉(zhuǎn)化為兩個(gè)十六進(jìn)制數(shù)字.
p) 函數(shù)INSTR(str,substr)
函數(shù)使用說(shuō)明:返回字符串 str 中子字符串的第一個(gè)出現(xiàn)位置.這和LOCATE() 的雙參數(shù)形式相同,除非參數(shù)的順序被顛倒.
q) 函數(shù)LCASE(str)
函數(shù)使用說(shuō)明:LCASE() 是 LOWER() 的同義詞
r) 函數(shù)LEFT(str,len)
函數(shù)使用說(shuō)明:返回從字符串str 開(kāi)始的len 最左字符
s) 函數(shù) LENGTH(str )
函數(shù)使用說(shuō)明: 返回值為字符串 str 的長(zhǎng)度,單位為字節(jié).一個(gè)多字節(jié)字符算作多字節(jié).這意味著 對(duì)于一個(gè)包含 5 個(gè) 2 字節(jié)字符的字符串, LENGTH() 的返回值為 10, 而 CHAR_LENGTH() 的返回值則為5 .
t) 函數(shù) LOAD_FILE(file_name)
函數(shù)使用說(shuō)明:讀取文件并將這一文件按照字符串的格式返回. 文件的位置必須在服務(wù)器上 , 你必須為文件制定路徑全名,而且你還必須擁有 FILE 特許權(quán).文件必須可讀取,文件容量必須小于 max_allowed_packet 字節(jié).若文件不存在,或因不滿足上述條件而不能被讀取, 則函數(shù)返回值為 NULL
u) 函數(shù) LOCATE(substr ,str ) , LOCATE(substr ,str ,pos )
函數(shù)使用說(shuō)明:第一個(gè)語(yǔ)法返回字符串 str 中子字符串substr 的第一個(gè)出現(xiàn)位置.第二個(gè)語(yǔ)法返回字符串 str 中子字符串substr 的第一個(gè)出現(xiàn)位置, 起始位置在pos .如若substr 不在str 中,則返回值為0 .
v) 函數(shù)LOWER(str )
函數(shù)使用說(shuō)明:返回字符串 str 以及所有根據(jù)最新的字符集映射表變?yōu)樾?xiě)字母的字符
w) 函數(shù)LPAD(str ,len ,padstr )
函數(shù)使用說(shuō)明:返回字符串 str , 其左邊由字符串padstr 填補(bǔ)到len 字符長(zhǎng)度.假如str 的長(zhǎng)度大于len , 則返回值被縮短至 len 字符.
x) 函數(shù)LTRIM(str )
函數(shù)使用說(shuō)明:返回字符串 str ,其引導(dǎo)空格字符被刪除.
y) 函數(shù) MAKE_SET(bits ,str1 ,str2 ,...)
函數(shù)使用說(shuō)明: 返回一個(gè)設(shè)定值 ( 一個(gè)包含被 ‘,' 號(hào)分開(kāi)的字字符串的字符串 ) ,由在 bits 組中具有相應(yīng)的比特的字符串組成. str1 對(duì)應(yīng)比特 0, str2 對(duì)應(yīng)比特 1, 以此類(lèi)推. str1 , str2 , ... 中的 NULL 值不會(huì)被添加到結(jié)果中.
z) 函數(shù) MID(str ,pos ,len )
函數(shù)使用說(shuō)明: MID(str ,pos ,len ) 是 SUBSTRING(str ,pos ,len ) 的同義詞.
aa) 函數(shù) OCT(N )
函數(shù)使用說(shuō)明:返回一個(gè) N 的八進(jìn)制值的字符串表示,其中 N 是一個(gè) longlong (BIGINT) 數(shù).這等同于 CONV(N,10,8) .若 N 為 NULL ,則返回值為 NULL .
bb) 函數(shù) OCTET_LENGTH(str )
函數(shù)使用說(shuō)明: OCTET_LENGTH() 是 LENGTH() 的同義詞.
cc) 函數(shù)ORD(str )
函數(shù)使用說(shuō)明:若字符串str 的最左字符是一個(gè)多字節(jié)字符,則返回該字符的代碼, 代碼的計(jì)算通過(guò)使用以下公式計(jì)算其組成字節(jié)的數(shù)值而得出:
(1st byte code)
+ (2nd byte code × 256)
+ (3rd byte code × 2562
) ...
假如最左字符不是一個(gè)多字節(jié)字符,那么 ORD() 和函數(shù)ASCII() 返回相同的值
dd) 函數(shù) POSITION(substr IN str )
函數(shù)使用說(shuō)明:POSITION(substr IN str ) 是 LOCATE(substr ,str ) 同義詞
ee) 函數(shù)QUOTE(str )
函數(shù)使用說(shuō)明:引證一個(gè)字符串,由此產(chǎn)生一個(gè)在SQL 語(yǔ)句中可用作完全轉(zhuǎn)義數(shù)據(jù)值的結(jié)果. 返回的字符串由單引號(hào)標(biāo)注,每例都帶有單引號(hào) (‘'') 、 反斜線符號(hào) (‘\') 、 ASCII NUL 以及前面有反斜線符號(hào)的Control-Z .如果自變量的值為NULL, 則返回不帶單引號(hào)的單詞 “NULL” .
ff) 函數(shù)REPEAT(str ,count )
函數(shù)使用說(shuō)明:返回一個(gè)由重復(fù)的字符串str 組成的字符串,字符串str 的數(shù)目等于count . 若 count <= 0, 則返回一個(gè)空字符串.若str 或 count 為 NULL ,則返回 NULL .
gg) 函數(shù)REPLACE(str ,from_str ,to_str )
函數(shù)使用說(shuō)明:返回字符串str 以及所有被字符串to_str 替代的字符串from_str .
hh) 函數(shù)REVERSE(str )
函數(shù)使用說(shuō)明:返回字符串 str ,順序和字符順序相反.
ii) 函數(shù)RIGHT(str ,len )
函數(shù)使用說(shuō)明:從字符串str 開(kāi)始,返回最右len 字符.
jj) 函數(shù)RPAD(str ,len ,padstr )
函數(shù)使用說(shuō)明:返回字符串str , 其右邊被字符串 padstr 填補(bǔ)至len 字符長(zhǎng)度.假如字符串str 的長(zhǎng)度大于 len , 則返回值被縮短到與 len 字符相同長(zhǎng)度
kk) 函數(shù)RTRIM(str )
函數(shù)使用說(shuō)明:返回字符串 str ,結(jié)尾空格字符被刪去.
ll) 函數(shù) SOUNDEX(str )
函數(shù)使用說(shuō)明:從str 返回一個(gè)soundex 字符串. 兩個(gè)具有幾乎同樣探測(cè)的字符串應(yīng)該具有同樣的 soundex 字符串.一個(gè)標(biāo)準(zhǔn)的soundex 字符串的長(zhǎng)度為4 個(gè)字符,然而SOUNDEX() 函數(shù)會(huì)返回一個(gè)人以長(zhǎng)度的字符串. 可使用結(jié)果中的SUBSTRING() 來(lái)得到一個(gè)標(biāo)準(zhǔn) soundex 字符串.在str 中, 會(huì)忽略所有未按照字母順序排列的字符.所有不在A-Z 范圍之內(nèi)的國(guó)際字母符號(hào)被視為元音字母.
mm) 函數(shù)expr1 SOUNDS LIKE expr2
函數(shù)使用說(shuō)明: 這相當(dāng)于SOUNDEX(expr1 ) = SOUNDEX(expr2 ) .
nn) 函數(shù)SPACE(N )
函數(shù)使用說(shuō)明:返回一個(gè)由N 間隔符號(hào)組成的字符串
oo) 函數(shù)SUBSTRING(str ,pos ) , SUBSTRING(str FROM pos ) SUBSTRING(str ,pos ,len ) , SUBSTRING(str FROM pos FOR len )
函數(shù)使用說(shuō)明:不帶有l(wèi)en 參數(shù)的格式從字符串str 返回一個(gè)子字符串,起始于位置 pos .帶有l(wèi)en 參數(shù)的格式從字符串str 返回一個(gè)長(zhǎng)度同len 字符相同的子字符串,起始于位置 pos . 使用 FROM 的格式為標(biāo)準(zhǔn) SQL 語(yǔ)法.也可能對(duì)pos 使用一個(gè)負(fù)值.假若這樣,則子字符串的位置起始于字符串結(jié)尾的pos 字符,而不是字符串的開(kāi)頭位置.在以下格式的函數(shù)中可以對(duì)pos 使用一個(gè)負(fù)值.
pp) 函數(shù)SUBSTRING_INDEX(str ,delim ,count )
函數(shù)使用說(shuō)明:在定界符 delim 以及count 出現(xiàn)前,從字符串str 返回自字符串.若count 為正值, 則返回最終定界符( 從左邊開(kāi)始) 左邊的一切內(nèi)容.若count 為負(fù)值,則返回定界符(從右邊開(kāi)始)右邊的一切內(nèi)容.
qq) 函數(shù) TRIM([{BOTH | LEADING | TRAILING} [remstr ] FROM] str ) TRIM(remstr FROM] str )
函數(shù)使用說(shuō)明:返回字符串 str , 其中所有remstr 前綴和/ 或后綴都已被刪除.若分類(lèi)符BOTH 、LEADIN 或TRAILING 中沒(méi)有一個(gè)是給定的, 則假設(shè)為BOTH . remstr 為可選項(xiàng),在未指定情況下,可刪除空格
rr) 函數(shù)UCASE(str)
函數(shù)使用說(shuō)明:UCASE() 是UPPER() 的同義詞
ss) 函數(shù)UNCOMPRESS(string_to_uncompress )
函數(shù)使用說(shuō)明:對(duì)經(jīng)COMPRESS() 函數(shù)壓縮后的字符串進(jìn)行解壓縮.若參數(shù)為壓縮值,則結(jié)果為 NULL .這個(gè)函數(shù)要求 MySQL 已被諸如zlib 之類(lèi)的壓縮庫(kù)編譯過(guò).否則, 返回值將始終是 NULL
tt) 函數(shù) UNCOMPRESSED_LENGTH(compressed_string )
函數(shù)使用說(shuō)明: 返回壓縮字符串壓縮前的長(zhǎng)度.
uu) 函數(shù) UNHEX(str)
函數(shù)使用說(shuō)明:執(zhí)行從 HEX(str ) 的反向操作.就是說(shuō),它將參數(shù)中的每一對(duì)十六進(jìn)制數(shù)字理解為一個(gè)數(shù)字,并將其轉(zhuǎn)化為該數(shù)字代表的字符.結(jié)果字符以二進(jìn)制字符串的形式返回
vv) 函數(shù) UPPER(str )
函數(shù)使用說(shuō)明:返回字符串 str , 以及根據(jù)最新字符集映射轉(zhuǎn)化為大寫(xiě)字母的字符
3數(shù)學(xué)函數(shù)
編輯
a) 函數(shù) ABS(X)
函數(shù)使用說(shuō)明:返回 X 的絕對(duì)值
b) 函數(shù) ACOS(X )
函數(shù)使用說(shuō)明:返回 X 反余弦 , 即 , 余弦是 X 的值.若 X 不在 -1 到 1 的范圍之內(nèi),則返回 NULL .
c) 函數(shù) ASIN ( X )
函數(shù)使用說(shuō)明:返回X 的反正弦,即,正弦為X 的值.若X 若X 不在-1 到 1 的范圍之內(nèi),則返回 NULL .
d) 函數(shù)ATAN(X )
函數(shù)使用說(shuō)明:返回 X 的反正切,即,正切為 X 的值.
e) 函數(shù) ATAN(Y ,X ) , ATAN2(Y ,X )
函數(shù)使用說(shuō)明:返回兩個(gè)變量 X 及 Y 的反正切. 它類(lèi)似于 Y 或 X 的反正切計(jì)
算 , 除非兩個(gè)參數(shù)的符號(hào)均用于確定結(jié)果所在象限.
f) 函數(shù) CEILING(X ) CEIL(X )
函數(shù)使用說(shuō)明:返回不小于 X 的最小整數(shù)值.
g) 函數(shù) COS(X )
函數(shù)使用說(shuō)明:返回 X 的余弦,其中 X 在弧度上已知.
h) 函數(shù) COT(X )
函數(shù)使用說(shuō)明:返回 X 的余切
i) 函數(shù) CRC32(expr )
函數(shù)使用說(shuō)明:計(jì)算循環(huán)冗余碼校驗(yàn)值并返回一個(gè) 32 比特?zé)o符號(hào)值.若參數(shù)為 NULL ,則結(jié)果為 NULL .該參數(shù)應(yīng)為一個(gè)字符串,而且在不是字符串的情況下會(huì)被作為字符串處理(若有可能)
j) 函數(shù) DEGREES(X )
函數(shù)使用說(shuō)明:返回參數(shù) X , 該參數(shù)由弧度被轉(zhuǎn)化為度.
k) 函數(shù) EXP(X )
函數(shù)使用說(shuō)明:返回 e 的 X 乘方后的值 ( 自然對(duì)數(shù)的底 ) .
l) 函數(shù) FLOOR(X )
函數(shù)使用說(shuō)明:返回不大于 X 的最大整數(shù)值 .
m) 函數(shù) FORMAT(X ,D )
函數(shù)使用說(shuō)明:將數(shù)字 X 的格式寫(xiě)成 '#,###,###.##' 格式 , 即保留小數(shù)點(diǎn)后 D 位,而第 D 位的保留方式為四舍五入,然后將結(jié)果以字符串的形式返回
n) 函數(shù) LN(X )
函數(shù)使用說(shuō)明:返回 X 的自然對(duì)數(shù) , 即 , X 相對(duì)于基數(shù) e 的對(duì)數(shù)
o) 函數(shù) LOG(X ) LOG(B ,X )
函數(shù)使用說(shuō)明:若用一個(gè)參數(shù)調(diào)用,這個(gè)函數(shù)就會(huì)返回 X 的自然對(duì)數(shù).
p) 函數(shù) LOG2(X )
函數(shù)使用說(shuō)明:返回 X 的基數(shù)為 2 的對(duì)數(shù).
q) 函數(shù) LOG10(X )
函數(shù)使用說(shuō)明:返回 X 的基數(shù)為 10 的對(duì)數(shù).
r) 函數(shù) MOD(N ,M ) , N % M N MOD M
函數(shù)使用說(shuō)明: 模操作.返回 N 被 M 除后的余數(shù).
s) 函數(shù) PI()
函數(shù)使用說(shuō)明:返回 ? (pi) 的值.默認(rèn)的顯示小數(shù)位數(shù)是 7 位 , 然而 MySQL 內(nèi)部會(huì)使用完全雙精度值.
t) 函數(shù) POW(X ,Y ) , POWER(X ,Y )
函數(shù)使用說(shuō)明:返回 X 的 Y 乘方的結(jié)果值.
u) 函數(shù) RADIANS(X )
函數(shù)使用說(shuō)明:返回由度轉(zhuǎn)化為弧度的參數(shù) X , ( 注意 ? 弧度等于 180 度).
v) 函數(shù) RAND() RAND(N )
函數(shù)使用說(shuō)明:返回一個(gè)隨機(jī)浮點(diǎn)值 v ,范圍在 0 到 1 之間 ( 即 , 其范圍為 0 ≤ v ≤ 1.0) .若已指定一個(gè)整數(shù)參數(shù) N ,則它被用作種子值,用來(lái)產(chǎn)生重復(fù)序列.
w) 函數(shù) ROUND(X ) ROUND(X ,D )
函數(shù)使用說(shuō)明:返回參數(shù) X , 其值接近于最近似的整數(shù).在有兩個(gè)參數(shù)的情況下,返回 X ,其值保留到小數(shù)點(diǎn)后 D 位,而第 D 位的保留方式為四舍五入.若要接保留 X 值小數(shù)點(diǎn)左邊的 D 位,可將 D 設(shè)為負(fù)值.
x) 函數(shù) SIGN(X )
函數(shù)使用說(shuō)明:返回參數(shù)作為 -1 、 0 或 1 的符號(hào),該符號(hào)取決于 X 的值為負(fù)、零或正.
y) 函數(shù) SIN(X )
函數(shù)使用說(shuō)明:返回 X 正弦,其中 X 在弧度中被給定.
z) 函數(shù) SQRT(X )
函數(shù)使用說(shuō)明: 返回非負(fù)數(shù) X 的二次方根.
aa) 函數(shù)TAN(X )
函數(shù)使用說(shuō)明: 返回 X 的正切,其中 X 在弧度中被給定.
bb) 函數(shù)TRUNCATE(X ,D )
函數(shù)使用說(shuō)明: 返回被舍去至小數(shù)點(diǎn)后 D 位的數(shù)字 X .若 D 的值為 0, 則結(jié)果
不帶有小數(shù)點(diǎn)或不帶有小數(shù)部分.可以將 D 設(shè)為負(fù)數(shù) , 若要截去 ( 歸零 ) X 小數(shù)點(diǎn)左起第 D 位開(kāi)始后面所有低位的值
4日期時(shí)間函數(shù)
編輯
a) 函數(shù)ADDDATE(date ,INTERVAL expr type ) ADDDATE(expr ,days )
函數(shù)使用說(shuō)明: 當(dāng)被第二個(gè)參數(shù)的 INTERVAL 格式激活后, ADDDATE() 就是 DATE_ADD() 的同義詞.相關(guān)函數(shù) SUBDATE() 則是 DATE_SUB() 的同義詞.對(duì)于 INTERVAL 參數(shù)上的信息 ,請(qǐng)參見(jiàn)關(guān)于 DATE_ADD() 的論述.
b) 函數(shù) ADDTIME(expr ,expr2 )
函數(shù)使用說(shuō)明: ADDTIME() 將 expr2 添加至 expr 然后返回結(jié)果. expr 是一個(gè)時(shí)間或時(shí)間日期表達(dá)式,而 expr2 是一個(gè)時(shí)間表達(dá)式.
c) 函數(shù) CONVERT_TZ(dt ,from_tz ,to_tz )
函數(shù)使用說(shuō)明: CONVERT_TZ() 將時(shí)間日期值 dt 從 from_tz 給出的時(shí)區(qū)轉(zhuǎn)到 to_tz 給出的時(shí)區(qū),然后返回結(jié)果值.關(guān)于可能指定的時(shí)區(qū)的詳細(xì)論述,若自變量無(wú)效,則這個(gè)函數(shù)會(huì)返回 NULL
d) 函數(shù) CURDATE()
函數(shù)使用說(shuō)明:將當(dāng)前日期按照 'YYYY-MM-DD' 或 YYYYMMDD 格式的值返回,具體格式根據(jù)函數(shù)用在字符串或是數(shù)字語(yǔ)境中而定.
e) 函數(shù) CURRENT_DATE CURRENT_DATE()
函數(shù)使用說(shuō)明: CURRENT_DATE 和 CURRENT_DATE() 是的同義詞 .
f) 函數(shù) CURTIME()
函數(shù)使用說(shuō)明: 將當(dāng)前時(shí)間以 'HH:MM:SS' 或 HHMMSS 的格式返回, 具體格式根據(jù)函數(shù)用在字符串或是數(shù)字語(yǔ)境中而定.
g) 函數(shù) CURRENT_TIME, CURRENT_TIME()
函數(shù)使用說(shuō)明: CURRENT_TIME 和 CURRENT_TIME() 是 CURTIME() 的同義詞.
h) 函數(shù) CURRENT_TIMESTAMP, CURRENT_TIMESTAMP()
函數(shù)使用說(shuō)明: CURRENT_TIMESTAMP 和 CURRENT_TIMESTAMP() 是 NOW() 的同義詞
i) 函數(shù) DATE(expr )
函數(shù)使用說(shuō)明: 提取日期或時(shí)間日期表達(dá)式expr 中的日期部分.
j) 函數(shù) DATEDIFF(expr ,expr2 )
函數(shù)使用說(shuō)明: DATEDIFF() 返回起始時(shí)間 expr 和結(jié)束時(shí)間 expr2 之間的天數(shù). Expr 和 expr2 為日期或 date-and-time表達(dá)式.計(jì)算中只用到這些值的日期部分.
k) 函數(shù) DATE_ADD(date ,INTERVAL expr type ) DATE_SUB(date ,INTERVAL expr type )
函數(shù)使用說(shuō)明:這些函數(shù)執(zhí)行日期運(yùn)算. date 是一個(gè) DATETIME 或 DATE 值,用來(lái)指定起始時(shí)間. expr 是一個(gè)表達(dá)式,用來(lái)指定從起始日期添加或減去的時(shí)間間隔值. Expr 是一個(gè)字符串 ; 對(duì)于負(fù)值的時(shí)間間隔,它可以以一個(gè) ‘-' 開(kāi)頭. type 為關(guān)鍵詞,它指示了表達(dá)式被解釋的方式.
l) 函數(shù) DATE_FORMAT(date ,format )
函數(shù)使用說(shuō)明:根據(jù) format 字符串安排 date 值的格式.
m) 函數(shù) DAY(date )
函數(shù)使用說(shuō)明: DAY() 和 DAYOFMONTH() 的意義相同
n) 函數(shù) DAYNAME(date )
函數(shù)使用說(shuō)明:返回 date 對(duì)應(yīng)的工作日名稱(chēng).
o) 函數(shù) DAYOFMONTH(date )
函數(shù)使用說(shuō)明:返回 date 對(duì)應(yīng)的該月日期,范圍是從 1 到 31
p) 函數(shù) DAYOFWEEK(date )
函數(shù)使用說(shuō)明:返回 date (1 = 周日 , 2 = 周一 , ..., 7 = 周六 ) 對(duì)應(yīng)的工作日索引.這些索引值符合 ODBC 標(biāo)準(zhǔn)
q) 函數(shù) DAYOFYEAR(date )
函數(shù)使用說(shuō)明:返回date 對(duì)應(yīng)的一年中的天數(shù),范圍是從 1 到366 .
r) 函數(shù) EXTRACT(type FROM date )
函數(shù)使用說(shuō)明: EXTRACT() 函數(shù)所使用的時(shí)間間隔類(lèi)型說(shuō)明符同 DATE_ADD() 或 DATE_SUB() 的相同 , 但它從日期中提取其部分,而不是執(zhí)行日期運(yùn)算.
s) 函數(shù)FROM_DAYS(N )
函數(shù)使用說(shuō)明: 給定一個(gè)天數(shù) N , 返回一個(gè) DATE 值.
t) 函數(shù) FROM_UNIXTIME(unix_timestamp ) FROM_UNIXTIME(unix_timestamp ,format )
函數(shù)使用說(shuō)明:返回'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS 格式值的unix_timestamp 參數(shù)表示,具體格式取決于該函數(shù)是否用在字符串中或是數(shù)字語(yǔ)境中. 若format 已經(jīng)給出,則結(jié)果的格式是根據(jù)format 字符串而定. format 可以包含同DATE_FORMAT() 函數(shù)輸入項(xiàng)列表中相同的說(shuō)明符.
u) 函數(shù) GET_FORMAT(DATE|TIME|DATETIME, 'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL')
函數(shù)使用說(shuō)明:返回一個(gè)格式字符串.這個(gè)函數(shù)在同 DATE_FORMAT() 及 STR_TO_DATE() 函數(shù)結(jié)合時(shí)很有用
v) 函數(shù) HOUR(time )
函數(shù)使用說(shuō)明:返回 time 對(duì)應(yīng)的小時(shí)數(shù).對(duì)于日時(shí)值的返回值范圍是從 0 到 23
w) 函數(shù) LAST_DAY(date )
函數(shù)使用說(shuō)明:獲取一個(gè)日期或日期時(shí)間值,返回該月最后一天對(duì)應(yīng)的值.若參數(shù)無(wú)效,則返回 NULL .
x) 函數(shù) LOCALTIME, LOCALTIME()
函數(shù)使用說(shuō)明: LOCALTIME 及 LOCALTIME() 和 NOW() 具有相同意義.
y) 函數(shù) LOCALTIMESTAMP, LOCALTIMESTAMP()
函數(shù)使用說(shuō)明: LOCALTIMESTAMP 和 LOCALTIMESTAMP() 和 NOW() 具有相同意義.
z) 函數(shù) MAKEDATE(year ,dayofyear )
函數(shù)使用說(shuō)明:給出年份值和一年中的天數(shù)值,返回一個(gè)日期. dayofyear 必須大于 0 ,否則結(jié)果為 NULL .
aa) 函數(shù) MAKETIME(hour ,minute ,second )
函數(shù)使用說(shuō)明: 返回由 hour 、 minute 和 second 參數(shù)計(jì)算得出的時(shí)間值
bb) 函數(shù) CROSECOND(expr )
函數(shù)使用說(shuō)明:從時(shí)間或日期時(shí)間表達(dá)式expr 返回微秒值,其數(shù)字范圍從 0 到 999999 .
cc) 函數(shù) MINUTE(time )
函數(shù)使用說(shuō)明:返回 time 對(duì)應(yīng)的分鐘數(shù) , 范圍是從 0 到 59 .
dd) 函數(shù) MONTH(date )
函數(shù)使用說(shuō)明:返回 date 對(duì)應(yīng)的月份,范圍時(shí)從 1 到 12 .
ee) 函數(shù) MONTHNAME(date )
函數(shù)使用說(shuō)明: 返回 date 對(duì)應(yīng)月份的全名
ff) 函數(shù) NOW()
函數(shù)使用說(shuō)明:返回當(dāng)前日期和時(shí)間值,其格式為 'YYYY-MM-DD HH:MM:SS' 或 YYYYMMDDHHMMSS , 具體格式取決于該函數(shù)是否用在字符串中或數(shù)字語(yǔ)境中.
gg) 函數(shù) PERIOD_ADD(P ,N )
函數(shù)使用說(shuō)明:添加 N 個(gè)月至周期 P ( 格式為 YYMM 或 YYYYMM) ,返回值的格式為 YYYYMM .注意周期參數(shù) P 不是 日期值.
hh) 函數(shù) PERIOD_DIFF(P1 ,P2 )
函數(shù)使用說(shuō)明:返回周期 P1 和 P2 之間的月份數(shù). P1 和 P2 的格式應(yīng)該為 YYMM 或 YYYYMM .注意周期參數(shù) P1 和 P2 不是 日期值.
ii) 函數(shù) QUARTER(date )
函數(shù)使用說(shuō)明:返回 date 對(duì)應(yīng)的一年中的季度值,范圍是從 1 到 4
jj) 函數(shù) SECOND(time )
函數(shù)使用說(shuō)明:返回 time 對(duì)應(yīng)的秒數(shù) , 范圍是從 0 到 59 .
kk) 函數(shù) SEC_TO_TIME(seconds )
函數(shù)使用說(shuō)明: 返回被轉(zhuǎn)化為小時(shí)、 分鐘和秒數(shù)的 seconds 參數(shù)值 , 其格式為 'HH:MM:SS' 或 HHMMSS ,具體格式根據(jù)該函數(shù)是否用在字符串或數(shù)字語(yǔ)境中而定
ll) 函數(shù) STR_TO_DATE(str ,format )
函數(shù)使用說(shuō)明:這是 DATE_FORMAT() 函數(shù)的倒轉(zhuǎn).它獲取一個(gè)字符串 str 和一個(gè)格式字符串 format .若格式字符串包含日期和時(shí)間部分,則 STR_TO_DATE() 返回一個(gè) DATETIME 值, 若該字符串只包含日期部分或時(shí)間部分,則返回一個(gè) DATE 或 TIME 值.
mm) 函數(shù) SUBDATE(date ,INTERVAL expr type ) SUBDATE(expr ,days )
函數(shù)使用說(shuō)明:當(dāng)被第二個(gè)參數(shù)的 INTERVAL 型式調(diào)用時(shí) , SUBDATE() 和 DATE_SUB() 的意義相同.對(duì)于有關(guān) INTERVAL 參數(shù)的信息, 見(jiàn)有關(guān) DATE_ADD() 的討論.
nn) 函數(shù) SUBTIME(expr ,expr2 )
函數(shù)使用說(shuō)明: SUBTIME() 從 expr 中提取 expr2 ,然后返回結(jié)果. expr 是一個(gè)時(shí)間或日期時(shí)間表達(dá)式,而 xpr2 是一個(gè)時(shí)間表達(dá)式.
oo) 函數(shù) SYSDATE()
函數(shù)使用說(shuō)明:返回當(dāng)前日期和時(shí)間值,格式為 'YYYY-MM-DD HH:MM:SS' 或 YYYYMMDDHHMMSS , 具體格式根據(jù)函數(shù)是否用在字符串或數(shù)字語(yǔ)境而定.
pp) 函數(shù) TIME(expr )
函數(shù)使用說(shuō)明:提取一個(gè)時(shí)間或日期時(shí)間表達(dá)式的時(shí)間部分,并將其以字符串形式返回.
qq) 函數(shù) TIMEDIFF(expr ,expr2 )
函數(shù)使用說(shuō)明: TIMEDIFF() 返回起始時(shí)間 expr 和結(jié)束時(shí)間 expr2 之間的時(shí)間. expr 和 expr2 為時(shí)間或 date-and-time表達(dá)式, 兩個(gè)的類(lèi)型必須一樣.
rr) 函數(shù)TIMESTAMP(expr ) , TIMESTAMP(expr ,expr2 )
函數(shù)使用說(shuō)明: 對(duì)于一個(gè)單參數(shù) , 該函數(shù)將日期或日期時(shí)間表達(dá)式expr 作為日期時(shí)間值返回 . 對(duì)于兩個(gè)參數(shù) , 它將時(shí)間表達(dá)式 expr2 添加到日期或日期時(shí)間表達(dá)式 expr 中,將 theresult 作為日期時(shí)間值返回.
ss) 函數(shù) TIMESTAMPADD(interval ,int_expr ,datetime_expr )
函數(shù)使用說(shuō)明:將整型表達(dá)式int_expr 添加到日期或日期時(shí)間表達(dá)式 datetime_expr 中. int_expr 的單位被時(shí)間間隔參數(shù)給定,該參數(shù)必須是以下值的其中一個(gè): FRAC_SECOND 、SECOND 、 MINUTE 、 HOUR 、 DAY 、 WEEK 、 MONTH 、 QUARTER 或 YEAR .可使用所顯示的關(guān)鍵詞指定Interval 值,或使用SQL_TSI_ 前綴.例如, DAY 或SQL_TSI_DAY 都是正確的
tt) 函數(shù) TIMESTAMPDIFF(interval ,datetime_expr1 ,datetime_expr2 )
函數(shù)使用說(shuō)明:返回日期或日期時(shí)間表達(dá)式 datetime_expr1 和 datetime_expr2 the 之間的整數(shù)差.其結(jié)果的單位由 interval 參數(shù)給出. interval 的法定值同 TIMESTAMPADD() 函數(shù)說(shuō)明中所列出的相同.
uu) 函數(shù) TIME_FORMAT(time ,format )
函數(shù)使用說(shuō)明:其使用和 DATE_FORMAT() 函數(shù)相同 , 然而 format 字符串可能僅會(huì)包含處理小時(shí)、分鐘和秒的格式說(shuō)明符.其它說(shuō)明符產(chǎn)生一個(gè) NULL 值或 0 .
vv) 函數(shù) TIME_TO_SEC(time )
函數(shù)使用說(shuō)明:返回已轉(zhuǎn)化為秒的 time 參數(shù)
ww) 函數(shù) TO_DAYS(date )
函數(shù)使用說(shuō)明:給定一個(gè)日期 date , 返回一個(gè)天數(shù) ( 從年份 0 開(kāi)始的天數(shù) ) .
xx) 函數(shù) UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date )
函數(shù)使用說(shuō)明:若無(wú)參數(shù)調(diào)用,則返回一個(gè) Unix timestamp ('1970-01-01 00:00:00' GMT 之后的秒數(shù) ) 作為無(wú)符號(hào)整數(shù).若用 date 來(lái)調(diào)用 UNIX_TIMESTAMP() ,它會(huì)將參數(shù)值以 '1970-01-01 00:00:00' GMT 后的秒數(shù)的形式返回. date 可以是一個(gè) DATE 字符串、一個(gè) DATETIME 字符串、一個(gè) TIMESTAMP 或一個(gè)當(dāng)?shù)貢r(shí)間的 YYMMDD 或 YYYMMDD 格式的數(shù)字.
yy) 函數(shù) UTC_DATE, UTC_DATE()
函數(shù)使用說(shuō)明:返回當(dāng)前 UTC 日期值,其格式為 'YYYY-MM-DD' 或 YYYYMMDD ,具體格式取決于函數(shù)是否用在字符串或數(shù)字語(yǔ)境中.
zz) 函數(shù) UTC_TIME, UTC_TIME()
函數(shù)使用說(shuō)明:返回當(dāng)前 UTC 值,其格式為 'HH:MM:SS' 或 HHMMSS ,具體格式根據(jù)該函數(shù)是否用在字符串或數(shù)字語(yǔ)境而定.
aaa) 函數(shù) UTC_TIMESTAMP, UTC_TIMESTAMP()
函數(shù)使用說(shuō)明:返回當(dāng)前 UTC 日期及時(shí)間值,格式為 'YYYY-MM-DD HH:MM:SS' 或 YYYYMMDDHHMMSS ,具體格式根據(jù)該函數(shù)是否用在字符串或數(shù)字語(yǔ)境而定
bbb) 函數(shù) WEEK(date [,mode ])
函數(shù)使用說(shuō)明:該函數(shù)返回 date 對(duì)應(yīng)的星期數(shù). WEEK() 的雙參數(shù)形式允許你指定該星期是否起始于周日或周一, 以及返回值的范圍是否為從 0 到 53 或從 1 到 53 .若 mode 參數(shù)被省略,則使用 default_week_format 系統(tǒng)自變量的值.
ccc) 函數(shù) WEEKDAY(date )
函數(shù)使用說(shuō)明:返回 date (0 = 周一 , 1 = 周二 , ... 6 = 周日 ) 對(duì)應(yīng)的工作日索引 weekday index for
ddd) 函數(shù) WEEKOFYEAR(date )
函數(shù)使用說(shuō)明:將該日期的陽(yáng)歷周以數(shù)字形式返回,范圍是從 1 到 53 .它是一個(gè)兼容度函數(shù),相當(dāng)于 WEEK(date ,3) .
eee) 函數(shù) YEAR(date )
函數(shù)使用說(shuō)明:返回 date 對(duì)應(yīng)的年份 , 范圍是從 1000 到 9999 .
fff) 函數(shù) YEARWEEK(date ), YEARWEEK(date ,start )
函數(shù)使用說(shuō)明:返回一個(gè)日期對(duì)應(yīng)的年或周. start 參數(shù)的工作同 start 參數(shù)對(duì) WEEK() 的工作相同.結(jié)果中的年份可以和該年的第一周和最后一周對(duì)應(yīng)的日期參數(shù)有所不同.
5搜索函數(shù)
編輯
a) 函數(shù) MATCH (col1,col2,...) AGAINST (expr [IN BOOLEAN MODE | WITH QUERY EXPANSION])
6加密函數(shù)
編輯
a) 函數(shù) AES_ENCRYPT(str ,key_str ) , AES_DECRYPT(crypt_str ,key_str )
函數(shù)使用說(shuō)明:這些函數(shù)允許使用官方 AES 進(jìn)行加密和數(shù)據(jù)加密 ( 高級(jí)加密標(biāo)準(zhǔn) ) 算法 , 即以前人們所熟知的 “Rijndael” . 保密關(guān)鍵字的長(zhǎng)度為 128 比特,不過(guò)你可以通過(guò)改變?cè)炊鴮⑵溲娱L(zhǎng)到 256 比特.我們選擇了 128 比特的原因是它的速度要快得多,且對(duì)于大多數(shù)用途而言這個(gè)保密程度已經(jīng)夠用.
b) 函數(shù)DECODE(crypt_str ,pass_str )
函數(shù)使用說(shuō)明:使用 pass_str 作為密碼,解密加密字符串 crypt_str , crypt_str 應(yīng)該是由 ENCODE() 返回的字符串.
c) 函數(shù) ENCODE(str ,pass_str )
函數(shù)使用說(shuō)明:使用 pass_str 作為密碼,解密 str . 使用 DECODE() 解密結(jié)果.
d) 函數(shù) DES_DECRYPT(crypt_str [,key_str ])
函數(shù)使用說(shuō)明:使用 DES_ENCRYPT() 加密一個(gè)字符串.若出現(xiàn)錯(cuò)誤,這個(gè)函數(shù)會(huì)返回 NULL .
e) 函數(shù) DES_ENCRYPT(str [,(key_num |key_str )])
函數(shù)使用說(shuō)明:用 Triple-DES 算法給出的關(guān)鍵字加密字符串.若出現(xiàn)錯(cuò)誤,這個(gè)函數(shù)會(huì)返回 NULL .
f) 函數(shù) ENCRYPT(str [,salt ])
函數(shù)使用說(shuō)明:使用 Unix crypt() 系統(tǒng)調(diào)用加密 str . salt 參數(shù)應(yīng)為一個(gè)至少包含 2 個(gè)字符的字符串.若沒(méi)有給出 salt 參數(shù),則使用任意值.
g) 函數(shù) MD5(str )
函數(shù)使用說(shuō)明:為字符串算出一個(gè) MD5 128 比特檢查和.該值以 32 位十六進(jìn)制數(shù)字的二進(jìn)制字符串的形式返回 , 若參數(shù)為 NULL 則會(huì)返回 NULL .例如,返回值可被用作散列關(guān)鍵字
h) 函數(shù) OLD_PASSWORD(str )
函數(shù)使用說(shuō)明:當(dāng) PASSWORD() 的執(zhí)行變?yōu)楦纳瓢踩詴r(shí), OLD_PASSWORD() 會(huì)被添加到 MySQL . OLD_PASSWORD() 返回從前的 PASSWORD() 執(zhí)行值 ( 4.1 之前 ) ,同時(shí)允許你為任何 4.1 之前的需要連接到你的 5.1 版本 MySQL 服務(wù)器前客戶(hù)端設(shè)置密碼,從而不至于將它們切斷
i) 函數(shù)PASSWORD(str )
函數(shù)使用說(shuō)明:從原文密碼str 計(jì)算并返回密碼字符串,當(dāng)參數(shù)為 NULL 時(shí)返回 NULL .這個(gè)函數(shù)用于用戶(hù)授權(quán)表的Password 列中的加密MySQL 密碼存儲(chǔ)
7信息函數(shù)
編輯
a) 函數(shù) BENCHMARK(count ,expr )
函數(shù)使用說(shuō)明: BENCHMARK() 函數(shù)重復(fù) count 次執(zhí)行表達(dá)式 expr . 它可以被用于計(jì)算 MySQL 處理表達(dá)式的速度.結(jié)果值通常為 0 .另一種用處來(lái)自 mysql 客戶(hù)端內(nèi)部 , 能夠報(bào)告問(wèn)詢(xún)執(zhí)行的次數(shù)
b) 函數(shù) CHARSET(str )
函數(shù)使用說(shuō)明:返回字符串自變量的字符集.
c) 函數(shù) COERCIBILITY(str )
函數(shù)使用說(shuō)明:返回字符串自變量的整序可壓縮性值.
d) 函數(shù) COLLATION(str )
函數(shù)使用說(shuō)明:返回惠字符串參數(shù)的排序方式.
e) 函數(shù) CONNECTION_ID()
函數(shù)使用說(shuō)明:返回對(duì)于連接的連接 ID ( 線程 ID) .每個(gè)連接都有各自的唯一 ID .
f) 函數(shù) CURRENT_USER, CURRENT_USER()
函數(shù)使用說(shuō)明:返回當(dāng)前話路被驗(yàn)證的用戶(hù)名和主機(jī)名組合.這個(gè)值符合確定你的存取權(quán)限的 MySQL 賬戶(hù).在被指定 SQL SECURITY DEFINER 特征的存儲(chǔ)程序內(nèi), CURRENT_USER() 返回程序的創(chuàng)建者
g) 函數(shù) DATABASE()
函數(shù)使用說(shuō)明:返回使用 utf8 字符集的默認(rèn) ( 當(dāng)前 ) 數(shù)據(jù)庫(kù)名.在存儲(chǔ)程序里,默認(rèn)數(shù)據(jù)庫(kù)是同該程序向關(guān)聯(lián)的數(shù)據(jù)庫(kù),但并不一定與調(diào)用語(yǔ)境的默認(rèn)數(shù)據(jù)庫(kù)相同.
h) 函數(shù) FOUND_ROWS()
函數(shù)使用說(shuō)明: A SELECT 語(yǔ)句可能包括一個(gè) LIMIT 子句,用來(lái)限制服務(wù)器返回客戶(hù)端的行數(shù).在有些情況下,需要不用再次運(yùn)行該語(yǔ)句而得知在沒(méi)有 LIMIT 時(shí)到底該語(yǔ)句返回了多少行.為了知道這個(gè)行數(shù) , 包括在 SELECT 語(yǔ)句中選擇 SQL_CALC_FOUND_ROWS ,隨后調(diào)用 FOUND_ROWS()
i) 函數(shù) LAST_INSERT_ID() LAST_INSERT_ID(expr )
函數(shù)使用說(shuō)明:自動(dòng)返回最后一個(gè) INSERT 或 UPDATE 問(wèn)詢(xún)?yōu)?AUTO_INCREMENT 列設(shè)置的第一個(gè) 發(fā)生的值.
j) 函數(shù) ROW_COUNT()
函數(shù)使用說(shuō)明: ROW_COUNT() 返回被前面語(yǔ)句升級(jí)的、插入的或刪除的行數(shù). 這個(gè)行數(shù)和 mysql 客戶(hù)端顯示的行數(shù)及 mysql_affected_rows() C API 函數(shù)返回的值相同.
k) 函數(shù) SCHEMA()
函數(shù)使用說(shuō)明:這個(gè)函數(shù)和 DATABASE() 具有相同的意義
l) 函數(shù) SESSION_USER()
函數(shù)使用說(shuō)明: SESSION_USER() 和 USER() 具有相同的意義.
m) 函數(shù) SYSTEM_USER()
函數(shù)使用說(shuō)明: SYSTEM_USER() 合 USER() 具有相同的意義
n) 函數(shù) USER()
函數(shù)使用說(shuō)明:返回當(dāng)前 MySQL 用戶(hù)名和機(jī)主名
o) 函數(shù) VERSION()
函數(shù)使用說(shuō)明:返回指示 MySQL 服務(wù)器版本的字符串.這個(gè)字符串使用 utf8 字符集.
8其他函數(shù)
編輯
a) 函數(shù) DEFAULT(col_name )
函數(shù)使用說(shuō)明:返回一個(gè)表列的默認(rèn)值.若該列沒(méi)有默認(rèn)值則會(huì)產(chǎn)生錯(cuò)誤.
b) 函數(shù) FORMAT(X ,D )
函數(shù)使用說(shuō)明:將數(shù)字 X 的格式寫(xiě)為 '#,###,###.##', 以四舍五入的方式保留小數(shù)點(diǎn)后 D 位, 并將結(jié)果以字符串的形式返回.若 D 為 0, 則返回結(jié)果不帶有小數(shù)點(diǎn),或不含小數(shù)部分.
c) 函數(shù) GET_LOCK(str ,timeout )
函數(shù)使用說(shuō)明:設(shè)法使用字符串 str 給定的名字得到一個(gè)鎖, 超時(shí)為 timeout 秒.若成功得到鎖,則返回 1 ,若操作超時(shí)則返回 0 ( 例如 , 由于另一個(gè)客戶(hù)端已提前封鎖了這個(gè)名字 ), 若發(fā)生錯(cuò)誤則返回 NULL ( 諸如缺乏記憶或線程 mysqladmin kill 被斷開(kāi) ) .假如你有一個(gè)用 GET_LOCK() 得到的鎖,當(dāng)你執(zhí)行 RELEASE_LOCK() 或你的連接斷開(kāi) ( 正常或非正常 ) 時(shí),這個(gè)鎖就會(huì)解除
d) 函數(shù) INET_ATON(expr )
函數(shù)使用說(shuō)明:給出一個(gè)作為字符串的網(wǎng)絡(luò)地址的點(diǎn)地址表示,返回一個(gè)代表該地址數(shù)值的整數(shù).地址可以是 4 或 8 比特地址.
e) 函數(shù) INET_NTOA(expr )
函數(shù)使用說(shuō)明:給定一個(gè)數(shù)字網(wǎng)絡(luò)地址 (4 或 8 比特 ), 返回作為字符串的該地址的電地址表示
f) 函數(shù) IS_FREE_LOCK(str )
函數(shù)使用說(shuō)明:檢查名為 str 的鎖是否可以使用 ( 換言之 , 沒(méi)有被封鎖 ) .若鎖可以使用,則返回 1 ( 沒(méi)有人在用這個(gè)鎖 ), 若這個(gè)鎖正在被使用,則返回 0 ,出現(xiàn)錯(cuò)誤則返回 NULL ( 諸如不正確的參數(shù) ) .
g) 函數(shù) IS_USED_LOCK(str )
函數(shù)使用說(shuō)明:檢查名為 str 的鎖是否正在被使用 ( 換言之 , 被封鎖 ) .若被封鎖,則返回使用該鎖的客戶(hù)端的連接標(biāo)識(shí)符.否則返回 NULL .
h) 函數(shù) MASTER_POS_WAIT(log_name ,log_pos [,timeout ])
函數(shù)使用說(shuō)明:該函數(shù)對(duì)于控制主從同步很有用處.它會(huì)持續(xù)封鎖,直到從設(shè)備閱讀和應(yīng)用主機(jī)記錄中所有補(bǔ)充資料到指定的位置.返回值是其為到達(dá)指定位置而必須等待的記錄事件的數(shù)目.若從設(shè)備 SQL 線程沒(méi)有被啟動(dòng)、從設(shè)備主機(jī)信息尚未初始化、參數(shù)不正確或出現(xiàn)任何錯(cuò)誤,則該函數(shù)返回 NULL .若超時(shí)時(shí)間被超過(guò),則返回 -1 .若在 MASTER_POS_WAIT() 等待期間,從設(shè)備 SQL 線程中止,則該函數(shù)返回 NULL .若從設(shè)備由指定位置通過(guò),則函數(shù)會(huì)立即返回結(jié)果.
i) 函數(shù) NAME_CONST(name ,value )
函數(shù)使用說(shuō)明:返回給定值. 當(dāng)用來(lái)產(chǎn)生一個(gè)結(jié)果集合列時(shí) , NAME_CONST() 促使該列使用給定名稱(chēng).
j) 函數(shù) RELEASE_LOCK(str )
函數(shù)使用說(shuō)明:解開(kāi)被 GET_LOCK() 獲取的,用字符串 str 所命名的鎖.若鎖被解開(kāi),則返回 1 ,若改線程尚未創(chuàng)建鎖,則返回 0 ( 此時(shí)鎖沒(méi)有被解開(kāi) ), 若命名的鎖不存在,則返回 NULL .若該鎖從未被對(duì) GET_LOCK() 的調(diào)用獲取,或鎖已經(jīng)被提前解開(kāi),則該鎖不存在.
k) 函數(shù) SLEEP(duration )
函數(shù)使用說(shuō)明:睡眠 ( 暫停 ) 時(shí)間為 duration 參數(shù)給定的秒數(shù),然后返回 0 .若 SLEEP() 被中斷 , 它會(huì)返回 1 . duration 或許或包括一個(gè)給定的以微秒為單位的分?jǐn)?shù)部分.
l) 函數(shù) UUID()
函數(shù)使用說(shuō)明:返回一個(gè)通用唯一標(biāo)識(shí)符 (UUID) , UUID 被設(shè)計(jì)成一個(gè)在時(shí)間和空間上都獨(dú)一無(wú)二的數(shù)字. 2 個(gè)對(duì) UUID() 的調(diào)用應(yīng)產(chǎn)生 2 個(gè)不同的值,即使這些調(diào)用的執(zhí)行是在兩個(gè)互不相連的單獨(dú)電腦上進(jìn)行.
m) 函數(shù) VALUES(col_name )
函數(shù)使用說(shuō)明:在一個(gè) INSERT … ON DUPLICATE KEY UPDATE … 語(yǔ)句中,你可以在 UPDATE 子句中使用 VALUES(col_name ) 函數(shù),用來(lái)訪問(wèn)來(lái)自該語(yǔ)句的 INSERT 部分的列值.換言之, UPDATE 子句中的 VALUES(col_name ) 訪問(wèn)需要被插入的 col_name 的值 , 并不會(huì)發(fā)生重復(fù)鍵沖突.這個(gè)函數(shù)在多行插入中特別有用. VALUES() 函數(shù)只在 INSERT ... UPDATE 語(yǔ)句中有意義,而在其它情況下只會(huì)返回 NULL
9聚合函數(shù)
編輯
a) 函數(shù) AVG([DISTINCT] expr )
函數(shù)使用說(shuō)明:返回 expr 的平均值. DISTINCT 選項(xiàng)可用于返回 expr 的不同值的平均值.
b) 函數(shù) BIT_AND(expr )
函數(shù)使用說(shuō)明:返回expr 中所有比特的 bitwise AND .計(jì)算執(zhí)行的精確度為64 比特(BIGINT) .若找不到匹配的行,則這個(gè)函數(shù)返回1844 ( 這是無(wú)符號(hào) BIGINT 值,所有比特被設(shè)置為 1 ).
c) 函數(shù) BIT_OR(expr )
函數(shù)使用說(shuō)明:返回expr 中所有比特的bitwise OR .計(jì)算執(zhí)行的精確度為64 比特(BIGINT) .若找不到匹配的行,則函數(shù)返回 0 .
d) 函數(shù)BIT_XOR(expr )
函數(shù)使用說(shuō)明:返回expr 中所有比特的bitwise XOR .計(jì)算執(zhí)行的精確度為64 比特(BIGINT) .若找不到匹配的行,則函數(shù)返回 0 .
e) 函數(shù) COUNT(expr )
函數(shù)使用說(shuō)明:返回SELECT 語(yǔ)句檢索到的行中非NULL 值的數(shù)目.若找不到匹配的行,則COUNT() 返回 0
f) 函數(shù) COUNT(DISTINCT expr ,[expr ...])
函數(shù)使用說(shuō)明:返回不同的非NULL 值數(shù)目.若找不到匹配的項(xiàng),則COUNT(DISTINCT) 返回 0
g) 函數(shù) GROUP_CONCAT(expr )
函數(shù)使用說(shuō)明:該函數(shù)返回帶有來(lái)自一個(gè)組的連接的非NULL 值的字符串結(jié)果.其完整的語(yǔ)法如下所示:
GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr }
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val ])
h) 函數(shù) MIN([DISTINCT] expr ), MAX([DISTINCT] expr )
函數(shù)使用說(shuō)明:返回 expr 的最小值和最大值. MIN() 和 MAX() 的取值可以是一個(gè)字符串參數(shù);在這些情況下, 它們返回最小或最大字符串值.
i) 函數(shù) STD(expr ) STDDEV(expr )
函數(shù)使用說(shuō)明:返回 expr 的總體標(biāo)準(zhǔn)偏差.這是標(biāo)準(zhǔn) SQL 的延伸.這個(gè)函數(shù)的 STDDEV() 形式用來(lái)提供和 Oracle 的兼容性.可使用標(biāo)準(zhǔn) SQL 函數(shù) STDDEV_POP() 進(jìn)行代替
j) 函數(shù) STDDEV_POP(expr )
函數(shù)使用說(shuō)明:返回expr 的總體標(biāo)準(zhǔn)偏差(VAR_POP() 的平方根) .你也可以使用 STD() 或STDDEV(), 它們具有相同的意義,然而不是標(biāo)準(zhǔn)的 SQL .若找不到匹配的行,則STDDEV_POP() 返回 NULL
k) 函數(shù) STDDEV_SAMP(expr )
函數(shù)使用說(shuō)明:返回expr 的樣本標(biāo)準(zhǔn)差 ( VAR_SAMP() 的平方根) .若找不到匹配的行,則STDDEV_SAMP() 返回 NULL
l) 函數(shù) SUM([DISTINCT] expr )
函數(shù)使用說(shuō)明:返回expr 的總數(shù). 若返回集合中無(wú)任何行,則 SUM() 返回NULL .DISTINCT 關(guān)鍵詞可用于 MySQL 5.1 中,求得expr 不同值的總和. 若找不到匹配的行,則SUM() 返回 NULL
m) 函數(shù) VAR_POP(expr )
函數(shù)使用說(shuō)明:返回 expr 總體標(biāo)準(zhǔn)方差.它將行視為總體,而不是一個(gè)樣本, 所以它將行數(shù)作為分母.你也可以使用 VARIANCE(), 它具有相同的意義然而不是 標(biāo)準(zhǔn)的 SQL
n) 函數(shù) VAR_SAMP(expr )
函數(shù)使用說(shuō)明:返回expr 的樣本方差.更確切的說(shuō),分母的數(shù)字是行數(shù)減去1 .若找不到匹配的行,則VAR_SAMP() 返回NULL
o) 函數(shù)VARIANCE(expr )
函數(shù)使用說(shuō)明:返回expr 的總體標(biāo)準(zhǔn)方差.這是標(biāo)準(zhǔn)SQL 的延伸.可使用標(biāo)準(zhǔn)SQL 函數(shù) VAR_POP() 進(jìn)行代替.若找不到匹配的項(xiàng),則VARIANCE() 返回NULL
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/1041.html