




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、存儲(chǔ)過程語法存儲(chǔ)過程如同一門程序設(shè)計(jì)語言,同樣包含了數(shù)據(jù)類型、流程控制、輸入和輸出和它自己的函數(shù)庫?;菊Z法一 .創(chuàng)建存儲(chǔ)過程createproceduresp_name()beginend二 .調(diào)用存儲(chǔ)過程1.基本語法:callsp_name()注意:存儲(chǔ)過程名稱后面必須加括號(hào),哪怕該存儲(chǔ)過程沒有參數(shù)傳遞三.刪除存儲(chǔ)過程1 .基本語法:dropproceduresp_name/2 .注意事項(xiàng)(1)不能在一個(gè)存儲(chǔ)過程中刪除另一個(gè)存儲(chǔ)過程,只能調(diào)用另一個(gè)存儲(chǔ)過程四.其他常用命令1.showprocedurestatus顯示數(shù)據(jù)庫中所有存儲(chǔ)的存儲(chǔ)過程基本信息,包括所屬數(shù)據(jù)庫,存儲(chǔ)過程名稱,創(chuàng)建時(shí)間
2、等2.showcreateproceduresp_name顯示某一個(gè) mysql 存儲(chǔ)過程的詳細(xì)信息數(shù)據(jù)類型及運(yùn)算符一、基本數(shù)據(jù)類型:略二、變量:自定義變量:DECLAREaINT;SETa=100;可用以下語句代替:DECLAREaINTDEFAULT100;變量分為用戶變量和系統(tǒng)變量,系統(tǒng)變量又分為會(huì)話和全局級(jí)變量用戶變量:用戶變量名一般以開頭,濫用用戶變量會(huì)導(dǎo)致程序難以理解及管理1、在 mysql 客戶端使用用戶變量mysqlSELECTHelloWorldintox;mysqlSELECTx;mysqlSETy=GoodbyeCruelWorld;mysqlselecty;mysqlS
3、ETz=1+2+3;mysqlselectz;2、在存儲(chǔ)過程中使用用戶變量mysqlCREATEPROCEDUREGreetWorld()SELECTCONCAT(greeting,World);mysqlSETgreeting=Hello;mysqlCALLGreetWorld();3、在存儲(chǔ)過程間傳遞全局范圍的用戶變量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)算,按位取反)注釋:mysql 存儲(chǔ)過程可使用兩種風(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 語言中的和。輸入和輸出mysql 存儲(chǔ)過程的參數(shù)用在存儲(chǔ)過程的定義,共有三種參數(shù)類型,IN,OUT,INOUTCreateprocedure|function(IN|OUT|INOUT參數(shù)名數(shù)據(jù)類形.)IN 輸入?yún)?shù)表示該參數(shù)的值必須在調(diào)用存儲(chǔ)過程時(shí)指定,在存儲(chǔ)過程中修改該參數(shù)的值不能被返回,為默認(rèn)值OUT 輸出參數(shù)該值
7、可在存儲(chǔ)過程內(nèi)部被改變,并可返回INOUT 輸入輸出參數(shù)調(diào)用時(shí)指定,并且可被改變和返回IN 參數(shù)例子:CREATEPROCEDUREsp_demo_in_parameter(INp_inINT)BEGINSELECTp_in;-查詢輸入?yún)?shù)SETp_in=2;-修改selectp_in;-查看修改后的值 END;執(zhí)行結(jié)果:mysqlsetp_in=1mysqlcallsp_demo_in_parameter(p_in)略mysqlselectp_in;略以上可以看出,p_in 雖然在存儲(chǔ)過程中被修改,但并不影響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ù)庫mysql 存儲(chǔ)過程基本函數(shù)包括:字符串類型,數(shù)值類型,日期類型一、字符串類CHARSET(str)返回字串字符集CONCAT(string2,)連接字串INSTR(string.substring)/返回 substring 首次在 string 中出現(xiàn)的位置,不存在返回 0LCASE(string2)/轉(zhuǎn)換成小寫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,但可指定開始位置LPAD(string2,length,pad)/重復(fù)用 pad 加在 string 開頭,直到字串長(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 開始,取 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)換成大寫RIGHT(string2,length)/取 string2 最后 length 個(gè)字符SPACE(count)/生成 count 個(gè)空格二、數(shù)值類型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、返回類型并非均為整數(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)開平方三、日期類型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 中的類型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ù)類型
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 花卉種植的自動(dòng)化與智能化技術(shù)考核試卷
- 信息系統(tǒng)監(jiān)理師考試內(nèi)容展望試題及答案
- 調(diào)味品生產(chǎn)設(shè)備選型與維護(hù)保養(yǎng)考核試卷
- 軟件測(cè)試中的時(shí)間管理策略試題及答案
- 氣體凈化技術(shù)在飼料工業(yè)的應(yīng)用考核試卷
- 網(wǎng)絡(luò)技術(shù)與軟件開發(fā)結(jié)合試題及答案
- 行政組織文化建設(shè)的重要性試題及答案
- 行政組織理論的教學(xué)方法對(duì)比與2025年試題及答案
- 客服大廳電腦管理制度
- 公司外幣結(jié)匯管理制度
- 2025購銷茶葉合同范本
- 研究我國平臺(tái)企業(yè)在社會(huì)責(zé)任履行及其治理機(jī)制的現(xiàn)狀與問題
- 安全管理:承包商安全管理制度(模板)
- 2025年宣城郎溪開創(chuàng)控股集團(tuán)有限公司下屬子公司招聘12人筆試參考題庫附帶答案詳解
- 山東濟(jì)南歷年中考作文題與審題指導(dǎo)(2005-2021)
- 訂制衣柜付款合同協(xié)議
- 風(fēng)冷模塊培訓(xùn)課件
- 地下室抗浮錨桿監(jiān)理實(shí)施細(xì)則
- 打磨作業(yè)指導(dǎo)書
- 醫(yī)院體檢報(bào)告模板(共2頁)
- 上海市住宅小區(qū)雨污混接改造項(xiàng)目管理實(shí)施細(xì)則
評(píng)論
0/150
提交評(píng)論