Mysql存儲過程語法_第1頁
Mysql存儲過程語法_第2頁
Mysql存儲過程語法_第3頁
Mysql存儲過程語法_第4頁
Mysql存儲過程語法_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、存儲過程語法存儲過程如同一門程序設(shè)計語言,同樣包含了數(shù)據(jù)類型、流程控制、輸入和輸出和它自己的函數(shù)庫?;菊Z法一 .創(chuàng)建存儲過程createproceduresp_name()beginend二 .調(diào)用存儲過程1.基本語法:callsp_name()注意:存儲過程名稱后面必須加括號,哪怕該存儲過程沒有參數(shù)傳遞三.刪除存儲過程1 .基本語法:dropproceduresp_name/2 .注意事項(1)不能在一個存儲過程中刪除另一個存儲過程,只能調(diào)用另一個存儲過程四.其他常用命令1.showprocedurestatus顯示數(shù)據(jù)庫中所有存儲的存儲過程基本信息,包括所屬數(shù)據(jù)庫,存儲過程名稱,創(chuàng)建時間

2、等2.showcreateproceduresp_name顯示某一個 mysql 存儲過程的詳細信息數(shù)據(jù)類型及運算符一、基本數(shù)據(jù)類型:略二、變量:自定義變量:DECLAREaINT;SETa=100;可用以下語句代替:DECLAREaINTDEFAULT100;變量分為用戶變量和系統(tǒng)變量,系統(tǒng)變量又分為會話和全局級變量用戶變量:用戶變量名一般以開頭,濫用用戶變量會導致程序難以理解及管理1、在 mysql 客戶端使用用戶變量mysqlSELECTHelloWorldintox;mysqlSELECTx;mysqlSETy=GoodbyeCruelWorld;mysqlselecty;mysqlS

3、ETz=1+2+3;mysqlselectz;2、在存儲過程中使用用戶變量mysqlCREATEPROCEDUREGreetWorld()SELECTCONCAT(greeting,World);mysqlSETgreeting=Hello;mysqlCALLGreetWorld();3、在存儲過程間傳遞全局范圍的用戶變量mysqlCREATEPROCEDUREp1()SETlast_procedure=p1;mysqlCREATEPROCEDUREp2()SELECTCONCAT(Lastprocedure,last_procedure);mysqlCALLp1();mysqlCALLp2(

4、);三、運算符:1 .算術(shù)運算符+力口 SETvar1=2+2;4-減 SETvar2=3-2;1*乘 SETvar3=3*2;6/除 SETvar4=10/3;3.3333DIV 整除 SETvar5=10DIV3;3%取模 SETvar6=10%3;12 .比較運算符大于 12False小于 2=小于等于 2=大于等于 3=2TrueBETWEEN 在兩值之間 5BETWEEN1AND10TrueNOTBETWEEN 不在兩值之間 5NOTBETWEEN1AND10FalseIN 在集合中 5IN(1,2,3,4)FalseNOTIN 不在集合中 5NOTIN(1,2,3,4)Truewa

5、s=等于 2=3False,!=不等于 23False嚴格比較兩個 NULL 值是否相等 NULLNULLTrueLIKE 簡單模式匹配GuyHarrisonLIKEGuy%TrueREGEXP 正則式匹配GuyHarrisonREGEXPGgregFalseISNULL 為空 0ISNULLFalseISNOTNULL 不為空 0ISNOTNULLTrue3 .邏輯運算符4 .位運算符|或&與右移位非(單目運算,按位取反)注釋:mysql 存儲過程可使用兩種風格的注釋雙橫杠:-該風格一般用于單行注釋c 風格:/*注釋內(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 存儲過程的參數(shù)用在存儲過程的定義,共有三種參數(shù)類型,IN,OUT,INOUTCreateprocedure|function(IN|OUT|INOUT參數(shù)名數(shù)據(jù)類形.)IN 輸入?yún)?shù)表示該參數(shù)的值必須在調(diào)用存儲過程時指定,在存儲過程中修改該參數(shù)的值不能被返回,為默認值OUT 輸出參數(shù)該值

7、可在存儲過程內(nèi)部被改變,并可返回INOUT 輸入輸出參數(shù)調(diào)用時指定,并且可被改變和返回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 雖然在存儲過程中被修改,但并不影響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 存儲過程基本函數(shù)包括:字符串類型,數(shù)值類型,日期類型一、字符串類CHARSET(str)返回字串字符集CONCAT(string2,)連接字串INSTR(string.substring)/返回 substring 首次在 string 中出現(xiàn)的位置,不存在返回 0LCASE(string2)/轉(zhuǎn)換成小寫LEFT(string2,length)/從 string2 中的左邊起取 length 個字符LENGTH(string)/str

10、ing 長度LOAD_FILE(file_name)/從文件讀取內(nèi)容LOCATE(substring,string,start_position)同 INSTR,但可指定開始位置LPAD(string2,length,pad)/重復用 pad 加在 string 開頭,直到字串長度為 lengthLTRIM(string2)/去除前端空格REPEAT(string2,count)/重復 count 次REPLACE(str,search_str,replace_str)/在 str 中用 replace_str 替換 search_strRPAD(string2,length,pad)/在 s

11、tr 后用 pad 補充,直到長度為 lengthRTRIM(string2)/去除后端空格STRCMP(stringl,string2)/逐字符比較兩字串大小,SUBSTRING(str,position,length)/從 str 的 position 開始,取 length 個字符,注:mysql 中處理字符串時,默認第一個字符下標為 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 個字符SPACE(count)/生成 count 個空格二、數(shù)值類型ABS(number2)/絕對值BIN(decimal_number)/十進制轉(zhuǎn)二進制CEILING(number2)/向上取整CONV(number2,from_base,to_base)/進制轉(zhuǎn)換F

13、LOOR(number2)/向下取整FORMAT(number,decimal_places)/保留小數(shù)位數(shù)HEX(DecimalNumber)/轉(zhuǎn)十六進制注:HEX()中可傳入字符串,則返回其 ASC-11 碼,如 HEX(DEF)返回 4142143也可以傳入十進制整數(shù),返回其十六進制編碼,如 HEX(25)返回 19LEAST(number,number2,.)/求最小值MOD(numerator,denominator)/求余POWER(number,power)/求指數(shù)RAND(seed)/隨機數(shù)ROUND(number,decimals)/四舍五入,decimals 為小數(shù)位數(shù)注:

14、返回類型并非均為整數(shù),如:(1)默認變?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ù),返回浮點型數(shù)據(jù)mysqlselectround(1.567,2);+-+|round(1.567,2)|+-+|1.57|+-+1rowinset(0.00sec)SIGN(number2)返回符號,正負或 0SQRT(number2)開平方三、日期類型ADDTIM

15、E(date2,time_interval)/將 time_interval 力口至 Udate2CONVERT_TZ(datetime2,fromTZ,toTZ)/轉(zhuǎn)換時區(qū)CURRENT_DATE()/當前日期CURRENT_TIME()/當前時間CURRENT_TIMESTAMP()/當前時間戳DATE(datetime)/返回 datetime 的日期部分DATE_ADD(date2,INTERVALd_valued_type)/在 date2 中加上日期或時間DATE_FORMAT(datetime,FormatCodes)/使用 formatcodes 格式顯示datetimeDAT

16、E_SUB(date2,INTERVALd_valued_type)/在 date2 上減去一個時間DATEDIFF(date1,date2)/兩個日期差DAY(date)返回日期的天DAYNAME(date)/英文星期DAYOFWEEK(date)/星期(1-7),1 為星期天DAYOFYEAR(date)/一年中的第幾天EXTRACT(interval_nameFROMdate)/從 date 中提取日期的指定部分MAKEDATE(year,day)/給出年及年中的第幾天,生成日期串MAKETIME(hour,minute,second)/生成時間串MONTHNAME(date)/英文月份

17、名NOW()/當前時間SEC_TO_TIME(seconds)/秒數(shù)轉(zhuǎn)成時間STR_TO_DATE(stringformat)/字串轉(zhuǎn)成時間,以 format 格式顯示TIMEDIFF(datetime1,datetime2)/兩個時間差TIME_TO_SEC(time)/時間轉(zhuǎn)秒數(shù)WEEK(date_time,start_of_week)/第幾周YEAR(datetime)/年份DAYOFMONTH(datetime)/月的第幾天HOUR(datetime)/小時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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論