




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、MYSQL常用函數(shù)1 數(shù)學(xué)函數(shù)1) ABS(x) 返回x的絕對(duì)值2) BIN(x)返回x的二進(jìn)制(OCT返回八進(jìn)制,HEX返回十六進(jìn)制)3) CEILING(x) 返回大于x的最小整數(shù)值4) EXP(x)返回值e(自然對(duì)數(shù)的底)的x次方5) FLOOR(x)返回小于x的最大整數(shù)值6) GREATEST(x1,x2,.,xn)返回集合中最大的值7) LEAST(x1,x2,.,xn) 返回集合中最小的值8) LN(x) 返回x的自然對(duì)數(shù)9) LOG(x,y)返回x的以y為底的對(duì)數(shù)10) MOD(x,y) 返回x/y的模(余數(shù))11) PI()返回pi的值(圓周率)12) RAND()返回到內(nèi)的隨
2、機(jī)值,可以通過(guò)提供一個(gè)參數(shù)(種子)使RAND()隨機(jī)數(shù)生成器生成一個(gè)指定的值。13) ROUND(x,y)返回參數(shù)x的四舍五入的有y位小數(shù)的值14) SIGN(x) 返回代表數(shù)字x的符號(hào)的值15) SQRT(x) 返回一個(gè)數(shù)的平方根16) TRUNCATE(x,y) 返回?cái)?shù)字x截短為y位小數(shù)的結(jié)果2 聚合函數(shù)1) AVG(col)返回指定列的平均值2) COUNT(col)返回指定列中非NULL值的個(gè)數(shù)3) MIN(col)返回指定列的最小值4) MAX(col)返回指定列的最大值5) SUM(col)返回指定列的所有值之和6) GROUP_CONCAT(col) 返回由屬于一組的列值連接組合
3、而成的結(jié)果3 字符串函數(shù)1) ASCII(char)返回字符的ASCII碼值2) BIT_LENGTH(str)返回字符串的比特長(zhǎng)度3) CONCAT(s1,s2.,sn)將s1,s2.,sn連接成字符串4) CONCAT_WS(sep,s1,s2.,sn)將s1,s2.,sn連接成字符串,并用sep字符間隔5) INSERT(str,x,y,instr) 將字符串str從第x位置開(kāi)始,y個(gè)字符長(zhǎng)的子串替換為字符串instr,返回結(jié)果6) FIND_IN_SET(str,list)分析逗號(hào)分隔的list列表,如果發(fā)現(xiàn)str,返回str在list中的位置7) LCASE(str)或LOWER(s
4、tr) 返回將字符串str中所有字符改變?yōu)樾?xiě)后的結(jié)果8) LEFT(str,x)返回字符串str中最左邊的x個(gè)字符9) LENGTH(s)返回字符串str中的字符數(shù)10) LTRIM(str) 從字符串str中切掉開(kāi)頭的空格11) POSITION(substr,str) 返回子串substr在字符串str中第一次出現(xiàn)的位置12) QUOTE(str) 用反斜杠轉(zhuǎn)義str中的單引號(hào)13) REPEAT(str,srchstr,rplcstr)返回字符串str重復(fù)x次的結(jié)果14) REVERSE(str) 返回顛倒字符串str的結(jié)果15) RIGHT(str,x) 返回字符串str中最右邊的x
5、個(gè)字符16) RTRIM(str) 返回字符串str尾部的空格17) STRCMP(s1,s2)比較字符串s1和s218) TRIM(str)去除字符串首部和尾部的所有空格19) UCASE(str)或UPPER(str) 返回將字符串str中所有字符轉(zhuǎn)變?yōu)榇髮?xiě)后的結(jié)果4 日期和時(shí)間函數(shù)1) CURDATE()或CURRENT_DATE() 返回當(dāng)前的日期2) CURTIME()或CURRENT_TIME() 返回當(dāng)前的時(shí)間3) DATE_ADD(date,INTERVAL int keyword) 返回日期date加上間隔時(shí)間int的結(jié)果(int必須按照關(guān)鍵字進(jìn)行格式化),如:SELECT
6、DATE_ADD(CURRENT_DATE,INTERVAL 6 MONTH);4) DATE_FORMAT(date,fmt) 依照指定的fmt格式格式化日期date值5) DATE_SUB(date,INTERVAL int keyword) 返回日期date加上間隔時(shí)間int的結(jié)果(int必須按照關(guān)鍵字進(jìn)行格式化),如:SELECT DATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH);6) DAYOFWEEK(date) 返回date所代表的一星期中的第幾天(17)7) DAYOFMONTH(date) 返回date是一個(gè)月的第幾天(131)8) DAYOFY
7、EAR(date) 返回date是一年的第幾天(1366)9) DAYNAME(date) 返回date的星期名,如:SELECT DAYNAME(CURRENT_DATE);10) FROM_UNIXTIME(ts,fmt) 根據(jù)指定的fmt格式,格式化UNIX時(shí)間戳ts11) HOUR(time) 返回time的小時(shí)值(023)12) MINUTE(time) 返回time的分鐘值(059)13) MONTH(date) 返回date的月份值(112)14) MONTHNAME(date) 返回date的月份名,如:SELECT MONTHNAME(CURRENT_DATE);15) NO
8、W() 返回當(dāng)前的日期和時(shí)間16) QUARTER(date) 返回date在一年中的季度(14),如SELECT QUARTER(CURRENT_DATE);17) WEEK(date) 返回日期date為一年中第幾周(053)18) YEAR(date) 返回日期date的年份(10009999)示例:獲取當(dāng)前系統(tǒng)時(shí)間:SELECT FROM_UNIXTIME(UNIX_TIMESTAMP();SELECT EXTRACT(YEAR_MONTH FROM CURRENT_DATE);SELECT EXTRACT(DAY_SECOND FROM CURRENT_DATE);SELECT EX
9、TRACT(HOUR_MINUTE FROM CURRENT_DATE);返回兩個(gè)日期值之間的差值(月數(shù)):SELECT PERIOD_DIFF(200302,199802);在Mysql中計(jì)算年齡:SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW()-TO_DAYS(birthday), '%Y')+0 AS age FROM employee;這樣,如果Brithday是未來(lái)的年月日的話,計(jì)算結(jié)果為0。下面的SQL語(yǔ)句計(jì)算員工的絕對(duì)年齡,即當(dāng)Birthday是未來(lái)的日期時(shí),將得到負(fù)值。SELECT DATE_FORMAT(NOW(),
10、9;%Y') - DATE_FORMAT(birthday, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(birthday, '00-%m-%d') AS age from employee5加密函數(shù)1) AES_ENCRYPT(str,key) 返回用密鑰key對(duì)字符串str利用高級(jí)加密標(biāo)準(zhǔn)算法加密后的結(jié)果,調(diào)用AES_ENCRYPT的結(jié)果是一個(gè)二進(jìn)制字符串,以BLOB類型存儲(chǔ)2) AES_DECRYPT(str,key) 返回用密鑰key對(duì)字符串str利用高級(jí)加密標(biāo)
11、準(zhǔn)算法解密后的結(jié)果3) DECODE(str,key) 使用key作為密鑰解密加密字符串str4) ENCRYPT(str,salt) 使用UNIX crypt()函數(shù),用關(guān)鍵詞salt(一個(gè)可以惟一確定口令的字符串,就像鑰匙一樣)加密字符串str5) ENCODE(str,key) 使用key作為密鑰加密字符串str,調(diào)用ENCODE()的結(jié)果是一個(gè)二進(jìn)制字符串,它以BLOB類型存儲(chǔ)6) MD5() 計(jì)算字符串str的MD5校驗(yàn)和7) PASSWORD(str) 返回字符串str的加密版本,這個(gè)加密過(guò)程是不可逆轉(zhuǎn)的,和UNIX密碼加密過(guò)程使用不同的算法。8) SHA() 計(jì)算字符串str的安
12、全散列算法(SHA)校驗(yàn)和示例:SELECT ENCRYPT('root','salt');SELECT ENCODE('xufeng','key');SELECT DECODE(ENCODE('xufeng','key'),'key');#加解密放在一起SELECT AES_ENCRYPT('root','key');SELECT AES_DECRYPT(AES_ENCRYPT('root','key'),'k
13、ey');SELECT MD5('123456');SELECT SHA('123456');6控制流函數(shù)MySQL有4個(gè)函數(shù)是用來(lái)進(jìn)行條件操作的,這些函數(shù)可以實(shí)現(xiàn)SQL的條件邏輯,允許開(kāi)發(fā)者將一些應(yīng)用程序業(yè)務(wù)邏輯轉(zhuǎn)換到數(shù)據(jù)庫(kù)后臺(tái)。MySQL控制流函數(shù):1) CASE WHENtest1 THEN result1.ELSE default END 如果testN是真,則返回resultN,否則返回default2) CASE test WHENval1 THEN result.ELSE default END 如果test和valN相等,則返回resul
14、tN,否則返回default3) IF(test,t,f) 如果test是真,返回t;否則返回 f4) IFNULL(arg1,arg2) 如果arg1不是空,返回arg1,否則返回arg25) NULLIF(arg1,arg2) 如果arg1=arg2返回NULL;否則返回arg1這些函數(shù)的第一個(gè)是IFNULL(),它有兩個(gè)參數(shù),并且對(duì)第一個(gè)參數(shù)進(jìn)行判斷。如果第一個(gè)參數(shù)不是NULL,函數(shù)就會(huì)向調(diào)用者返回第一個(gè)參數(shù);如果是NULL,將返回第二個(gè)參數(shù)。如:SELECT IFNULL(1,2), IFNULL(NULL,10), IFNULL(4*NULL,'false');
15、16;NULLIF()函數(shù)將會(huì)檢驗(yàn)提供的兩個(gè)參數(shù)是否相等,如果相等,則返回NULL,如果不相等,就返回第一個(gè)參數(shù)。如:SELECT NULLIF(1,1),NULLIF('A','B'),NULLIF(2+3,4+1);Ø和許多腳本語(yǔ)言提供的IF()函數(shù)一樣,MySQL的IF()函數(shù)也可以建立一個(gè)簡(jiǎn)單的條件測(cè)試,這個(gè)函數(shù)有三個(gè)參數(shù),第一個(gè)是要被判斷的表達(dá)式,如果表達(dá)式為真,IF()將會(huì)返回第二個(gè)參數(shù),如果為假,IF()將會(huì)返回第三個(gè)參數(shù)。如:SELECT IF(1<10,2,3),IF(56>100,'true','
16、false');ØIF()函數(shù)在只有兩種可能結(jié)果時(shí)才適合使用。然而,在現(xiàn)實(shí)世界中,我們可能發(fā)現(xiàn)在條件測(cè)試中會(huì)需要多個(gè)分支。在這種情況下,MySQL提供了CASE函數(shù),它和PHP及Perl語(yǔ)言的switch-case條件例程一樣。CASE函數(shù)的格式有些復(fù)雜,通常如下所示:CASE expression to be evaluatedWHEN val 1 THEN result 1WHEN val 2 THEN result 2WHEN val 3 THEN result 3.WHEN val n THEN result nELSE default resultEND這里,第一個(gè)
17、參數(shù)是要被判斷的值或表達(dá)式,接下來(lái)的是一系列的WHEN-THEN塊,每一塊的第一個(gè)參數(shù)指定要比較的值,如果為真,就返回結(jié)果。所有的 WHEN-THEN塊將以ELSE塊結(jié)束,當(dāng)END結(jié)束了所有外部的CASE塊時(shí),如果前面的每一個(gè)塊都不匹配就會(huì)返回ELSE塊指定的默認(rèn)結(jié)果。如果沒(méi) 有指定ELSE塊,而且所有的WHEN-THEN比較都不是真,MySQL將會(huì)返回NULL。CASE函數(shù)還有另外一種句法,有時(shí)使用起來(lái)非常方便,如下:CASEWHEN conditional test 1 THEN result 1WHEN conditional test 2 THEN result 2ELSE defau
18、lt resultEND這種條件下,返回的結(jié)果取決于相應(yīng)的條件測(cè)試是否為真。示例:mysql>SELECT CASE 'green' WHEN 'red' THEN 'stop' WHEN 'green' THEN 'go' END;SELECT CASE 9 WHEN 1 THEN 'a' WHEN 2 THEN 'b' ELSE 'N/A' END;SELECT CASE WHEN (2+2)=4 THEN 'OK' WHEN (2+2)&l
19、t;>4 THEN 'not OK' END AS STATUS;SELECT Name,IF(IsActive = 1),'已激活','未激活') AS RESULT FROM UserLoginInfo;SELECT fname,lname,(math+sci+lit) AS total,CASE WHEN (math+sci+lit) < 50 THEN 'D'WHEN (math+sci+lit) BETWEEN 50 AND 150 THEN 'C'WHEN (math+sci+lit) BE
20、TWEEN 151 AND 250 THEN 'B'ELSE 'A' END AS grade FROM marks;ØSELECT IF(ENCRYPT('sue','ts')=upass,'allow','deny') AS LoginResult FROM users WHERE uname = 'sue'#一個(gè)登陸驗(yàn)證7格式化函數(shù)1) DATE_FORMAT(date,fmt) 依照字符串fmt格式化日期date值2) FORMAT(x,y) 把x格式化為以逗號(hào)隔開(kāi)
21、的數(shù)字序列,y是結(jié)果的小數(shù)位數(shù)3) INET_ATON(ip) 返回IP地址的數(shù)字表示4) INET_NTOA(num) 返回?cái)?shù)字所代表的IP地址5) TIME_FORMAT(time,fmt) 依照字符串fmt格式化時(shí)間time值6) 其中最簡(jiǎn)單的是FORMAT()函數(shù),它可以把大的數(shù)值格式化為以逗號(hào)間隔的易讀的序列。示例:SELECT FORMAT(34234.34323432,3);SELECT DATE_FORMAT(NOW(),'%W,%D %M %Y %r');SELECT DATE_FORMAT(NOW(),'%Y-%m-%d');SELECT DATE_F
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車(chē)售后服務(wù)質(zhì)量管理指南
- 貝雷橋建造技術(shù)方案
- 大型基礎(chǔ)設(shè)施項(xiàng)目施工組織方案與案例分析
- 生物肥料對(duì)農(nóng)作物產(chǎn)量影響的田間實(shí)驗(yàn)研究
- 公司車(chē)輛外借使用合同
- 量子計(jì)算中的補(bǔ)碼優(yōu)化策略-洞察及研究
- 藝術(shù)培訓(xùn)班開(kāi)業(yè)活動(dòng)策劃書(shū)
- 榮譽(yù)獎(jiǎng)勵(lì)制度規(guī)范與執(zhí)行方案
- 三年級(jí)數(shù)學(xué)思維拓展競(jìng)賽題
- 人教版五年級(jí)上冊(cè)英語(yǔ)教案及練習(xí)
- 2025年北森潛力測(cè)評(píng)試題及答案
- 2025銀行招聘試題及答案詳解
- 騰訊新員工培訓(xùn)
- 2025年成人高考高升專試題(含答案)
- 層林盡染楓葉紅課件
- 車(chē)管所備案申請(qǐng)書(shū)
- 2025貴州冊(cè)亨縣招聘教師25人考試參考試題及答案解析
- 河南成人2024學(xué)位英語(yǔ)考試真題及答案
- 公共危機(jī)管理(本)-第五次形成性考核-國(guó)開(kāi)(BJ)-參考資料
- 中國(guó)民間傳說(shuō):田螺姑娘
- 2016年全國(guó)中學(xué)生天文奧林匹克競(jìng)賽預(yù)賽試卷
評(píng)論
0/150
提交評(píng)論