




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、存儲(chǔ)過(guò)程語(yǔ)法存儲(chǔ)過(guò)程如同一門(mén)程序設(shè)計(jì)語(yǔ)言,同樣包含了數(shù)據(jù)類(lèi)型、流程控制、輸入和輸出和它自己的函數(shù)庫(kù)?;菊Z(yǔ)法一 .創(chuàng)建存儲(chǔ)過(guò)程createproceduresp_name()beginend二 .調(diào)用存儲(chǔ)過(guò)程1.基本語(yǔ)法:callsp_name()注意:存儲(chǔ)過(guò)程名稱(chēng)后面必須加括號(hào),哪怕該存儲(chǔ)過(guò)程沒(méi)有參數(shù)傳遞三.刪除存儲(chǔ)過(guò)程1 .基本語(yǔ)法:dropproceduresp_name/2 .注意事項(xiàng)(1)不能在一個(gè)存儲(chǔ)過(guò)程中刪除另一個(gè)存儲(chǔ)過(guò)程,只能調(diào)用另一個(gè)存儲(chǔ)過(guò)程四.其他常用命令1.showprocedurestatus顯示數(shù)據(jù)庫(kù)中所有存儲(chǔ)的存儲(chǔ)過(guò)程基本信息,包括所屬數(shù)據(jù)庫(kù),存儲(chǔ)過(guò)程名稱(chēng),創(chuàng)建時(shí)間
2、等2.showcreateproceduresp_name顯示某一個(gè) mysql 存儲(chǔ)過(guò)程的詳細(xì)信息數(shù)據(jù)類(lèi)型及運(yùn)算符一、基本數(shù)據(jù)類(lèi)型:略二、變量:自定義變量:DECLAREaINT;SETa=100;可用以下語(yǔ)句代替:DECLAREaINTDEFAULT100;變量分為用戶(hù)變量和系統(tǒng)變量,系統(tǒng)變量又分為會(huì)話(huà)和全局級(jí)變量用戶(hù)變量:用戶(hù)變量名一般以開(kāi)頭,濫用用戶(hù)變量會(huì)導(dǎo)致程序難以理解及管理1、在 mysql 客戶(hù)端使用用戶(hù)變量mysqlSELECTHelloWorldintox;mysqlSELECTx;mysqlSETy=GoodbyeCruelWorld;mysqlselecty;mysqlS
3、ETz=1+2+3;mysqlselectz;2、在存儲(chǔ)過(guò)程中使用用戶(hù)變量mysqlCREATEPROCEDUREGreetWorld()SELECTCONCAT(greeting,World);mysqlSETgreeting=Hello;mysqlCALLGreetWorld();3、在存儲(chǔ)過(guò)程間傳遞全局范圍的用戶(hù)變量mysqlCREATEPROCEDUREp1()SETlast_procedure=p1;mysqlCREATEPROCEDUREp2()SELECTCONCAT(Lastprocedure,last_procedure);mysqlCALLp1();mysqlCALLp2(
4、);三、運(yùn)算符:1 .算術(shù)運(yùn)算符+力口 SETvar1=2+2;4-減 SETvar2=3-2;1*乘 SETvar3=3*2;6/除 SETvar4=10/3;3.3333DIV 整除 SETvar5=10DIV3;3%取模 SETvar6=10%3;12 .比較運(yùn)算符大于 12False小于 2=小于等于 2=大于等于 3=2TrueBETWEEN 在兩值之間 5BETWEEN1AND10TrueNOTBETWEEN 不在兩值之間 5NOTBETWEEN1AND10FalseIN 在集合中 5IN(1,2,3,4)FalseNOTIN 不在集合中 5NOTIN(1,2,3,4)Truewa
5、s=等于 2=3False,!=不等于 23False嚴(yán)格比較兩個(gè) NULL 值是否相等 NULLNULLTrueLIKE 簡(jiǎn)單模式匹配GuyHarrisonLIKEGuy%TrueREGEXP 正則式匹配GuyHarrisonREGEXPGgregFalseISNULL 為空 0ISNULLFalseISNOTNULL 不為空 0ISNOTNULLTrue3 .邏輯運(yùn)算符4 .位運(yùn)算符|或&與右移位非(單目運(yùn)算,按位取反)注釋?zhuān)簃ysql 存儲(chǔ)過(guò)程可使用兩種風(fēng)格的注釋雙橫杠:-該風(fēng)格一般用于單行注釋c 風(fēng)格:/*注釋內(nèi)容*/一般用于多行注釋流程控制一、順序結(jié)構(gòu)二、分支結(jié)構(gòu)ifcase
6、三、循環(huán)結(jié)構(gòu)for 循環(huán)while 循環(huán) loop 循環(huán) repeatuntil 循環(huán)注:區(qū)塊定義,常用beginend;也可以給區(qū)塊起別名,如:lable:beginendlable;可以用 leavelable;跳出區(qū)塊,執(zhí)行區(qū)塊以后的代碼begin 和 end 如同 C 語(yǔ)言中的和。輸入和輸出mysql 存儲(chǔ)過(guò)程的參數(shù)用在存儲(chǔ)過(guò)程的定義,共有三種參數(shù)類(lèi)型,IN,OUT,INOUTCreateprocedure|function(IN|OUT|INOUT參數(shù)名數(shù)據(jù)類(lèi)形.)IN 輸入?yún)?shù)表示該參數(shù)的值必須在調(diào)用存儲(chǔ)過(guò)程時(shí)指定,在存儲(chǔ)過(guò)程中修改該參數(shù)的值不能被返回,為默認(rèn)值OUT 輸出參數(shù)該值
7、可在存儲(chǔ)過(guò)程內(nèi)部被改變,并可返回INOUT 輸入輸出參數(shù)調(diào)用時(shí)指定,并且可被改變和返回IN 參數(shù)例子:CREATEPROCEDUREsp_demo_in_parameter(INp_inINT)BEGINSELECTp_in;-查詢(xún)輸入?yún)?shù)SETp_in=2;-修改selectp_in;-查看修改后的值 END;執(zhí)行結(jié)果:mysqlsetp_in=1mysqlcallsp_demo_in_parameter(p_in)略mysqlselectp_in;略以上可以看出,p_in 雖然在存儲(chǔ)過(guò)程中被修改,但并不影響p_id 的值OUT 參數(shù)例子創(chuàng)建:mysqlCREATEPROCEDUREsp_d
8、emo_out_parameter(OUTp_outINT)BEGINSELECTp_out;/*查看輸出參數(shù)*/SETp_out=2;/*修改參數(shù)值*/SELECTp_out;/*看看有否變化*/END;執(zhí)行結(jié)果:mysqlSETp_out=1mysqlCALLsp_demo_out_parameter(p_out)略mysqlSELECTp_out;略INOUT 參數(shù)例子:mysqlCREATEPROCEDUREsp_demo_inout_parameter(INOUTp_inoutINT)BEGINSELECTp_inout;SETp_inout=2;SELECTp_inout;END;
9、執(zhí)行結(jié)果:setp_inout=1callsp_demo_inout_parameter(p_inout)/略selectp_inout;略附:函數(shù)庫(kù)mysql 存儲(chǔ)過(guò)程基本函數(shù)包括:字符串類(lèi)型,數(shù)值類(lèi)型,日期類(lèi)型一、字符串類(lèi)CHARSET(str)返回字串字符集CONCAT(string2,)連接字串INSTR(string.substring)/返回 substring 首次在 string 中出現(xiàn)的位置,不存在返回 0LCASE(string2)/轉(zhuǎn)換成小寫(xiě)LEFT(string2,length)/從 string2 中的左邊起取 length 個(gè)字符LENGTH(string)/str
10、ing 長(zhǎng)度LOAD_FILE(file_name)/從文件讀取內(nèi)容LOCATE(substring,string,start_position)同 INSTR,但可指定開(kāi)始位置LPAD(string2,length,pad)/重復(fù)用 pad 加在 string 開(kāi)頭,直到字串長(zhǎng)度為 lengthLTRIM(string2)/去除前端空格REPEAT(string2,count)/重復(fù) count 次REPLACE(str,search_str,replace_str)/在 str 中用 replace_str 替換 search_strRPAD(string2,length,pad)/在 s
11、tr 后用 pad 補(bǔ)充,直到長(zhǎng)度為 lengthRTRIM(string2)/去除后端空格STRCMP(stringl,string2)/逐字符比較兩字串大小,SUBSTRING(str,position,length)/從 str 的 position 開(kāi)始,取 length 個(gè)字符,注:mysql 中處理字符串時(shí),默認(rèn)第一個(gè)字符下標(biāo)為 1,即參數(shù) position 必須大于等于 1mysqlselectsubstring(abcd,0,2);+|substring(abcd,0,2)|+|+1rowinset(0.00sec)mysqlselectsubstring(abcd,1,2);
12、+|substring(abcd,1,2)|+|ab|+1rowinset(0.02sec)TRIM(BOTH|LEADING|TRAILINGpaddingFROMstring2)/去除指定位置的指定字符UCASE(string2)/轉(zhuǎn)換成大寫(xiě)RIGHT(string2,length)/取 string2 最后 length 個(gè)字符SPACE(count)/生成 count 個(gè)空格二、數(shù)值類(lèi)型ABS(number2)/絕對(duì)值BIN(decimal_number)/十進(jìn)制轉(zhuǎn)二進(jìn)制CEILING(number2)/向上取整CONV(number2,from_base,to_base)/進(jìn)制轉(zhuǎn)換F
13、LOOR(number2)/向下取整FORMAT(number,decimal_places)/保留小數(shù)位數(shù)HEX(DecimalNumber)/轉(zhuǎn)十六進(jìn)制注:HEX()中可傳入字符串,則返回其 ASC-11 碼,如 HEX(DEF)返回 4142143也可以傳入十進(jìn)制整數(shù),返回其十六進(jìn)制編碼,如 HEX(25)返回 19LEAST(number,number2,.)/求最小值MOD(numerator,denominator)/求余POWER(number,power)/求指數(shù)RAND(seed)/隨機(jī)數(shù)ROUND(number,decimals)/四舍五入,decimals 為小數(shù)位數(shù)注:
14、返回類(lèi)型并非均為整數(shù),如:(1)默認(rèn)變?yōu)檎沃祄ysqlselectround(1.23);+-+|round(1.23)|+-+|1|+-+1rowinset(0.00sec)mysqlselectround(1.56);+-+|round(1.56)|+-+|2|+-+1rowinset(0.00sec)(2)可以設(shè)定小數(shù)位數(shù),返回浮點(diǎn)型數(shù)據(jù)mysqlselectround(1.567,2);+-+|round(1.567,2)|+-+|1.57|+-+1rowinset(0.00sec)SIGN(number2)返回符號(hào),正負(fù)或 0SQRT(number2)開(kāi)平方三、日期類(lèi)型ADDTIM
15、E(date2,time_interval)/將 time_interval 力口至 Udate2CONVERT_TZ(datetime2,fromTZ,toTZ)/轉(zhuǎn)換時(shí)區(qū)CURRENT_DATE()/當(dāng)前日期CURRENT_TIME()/當(dāng)前時(shí)間CURRENT_TIMESTAMP()/當(dāng)前時(shí)間戳DATE(datetime)/返回 datetime 的日期部分DATE_ADD(date2,INTERVALd_valued_type)/在 date2 中加上日期或時(shí)間DATE_FORMAT(datetime,FormatCodes)/使用 formatcodes 格式顯示datetimeDAT
16、E_SUB(date2,INTERVALd_valued_type)/在 date2 上減去一個(gè)時(shí)間DATEDIFF(date1,date2)/兩個(gè)日期差DAY(date)返回日期的天DAYNAME(date)/英文星期DAYOFWEEK(date)/星期(1-7),1 為星期天DAYOFYEAR(date)/一年中的第幾天EXTRACT(interval_nameFROMdate)/從 date 中提取日期的指定部分MAKEDATE(year,day)/給出年及年中的第幾天,生成日期串MAKETIME(hour,minute,second)/生成時(shí)間串MONTHNAME(date)/英文月份
17、名NOW()/當(dāng)前時(shí)間SEC_TO_TIME(seconds)/秒數(shù)轉(zhuǎn)成時(shí)間STR_TO_DATE(stringformat)/字串轉(zhuǎn)成時(shí)間,以 format 格式顯示TIMEDIFF(datetime1,datetime2)/兩個(gè)時(shí)間差TIME_TO_SEC(time)/時(shí)間轉(zhuǎn)秒數(shù)WEEK(date_time,start_of_week)/第幾周YEAR(datetime)/年份DAYOFMONTH(datetime)/月的第幾天HOUR(datetime)/小時(shí)LAST_DAY(date)/date 的月的最后日期MICROSECOND(datetime)/微秒MONTH(datetime)/月MINUTE(datetime)/分注:可用在 INTERVAL 中的類(lèi)型DAY,DAY_HOUR,DAY_MINUTE,DAY_SECOND,HOUR,HOUR_MINUTE,HOUR_SECOND,MINUTE,MINUTE_SECOND,MONTH,SECOND,YEARDECLAREvariable_name,variable_name.datatypeDEFAULTvalue;其中,datatype 為 mysql 的數(shù)據(jù)類(lèi)型
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 交易租房合同范例
- 臨時(shí)工程用工合同范例
- 單位出具解聘合同范例
- 吉林省夜市場(chǎng)租賃合同范例
- 養(yǎng)鴨場(chǎng)承包合同范例
- 制作百葉合同范例
- 中德育工作總結(jié)
- 企業(yè)出資合同范例
- 北京施工裝修合同范例
- 出售個(gè)人二手商鋪合同范例
- 七年級(jí)歷史下冊(cè) 第一單元 綜合測(cè)試卷(人教福建版 2025年春)
- 2025年湘教版初中地理七年級(jí)下冊(cè)重點(diǎn)知識(shí)點(diǎn)梳理與歸納
- DIN5480_德標(biāo)花鍵計(jì)算表格
- 急性腎盂腎炎護(hù)理查房ppt課件
- 脫水機(jī)房設(shè)備安裝方案
- 致愛(ài)麗絲鋼琴曲五線(xiàn)譜
- 氣體放電基礎(chǔ)分析
- 專(zhuān)業(yè)技術(shù)人員年度(任期)考核登記表
- 人際反應(yīng)指數(shù)量表
- 萜類(lèi)及揮發(fā)油
- HarrisonAssessments哈里遜測(cè)評(píng)PPT課件
評(píng)論
0/150
提交評(píng)論