




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、存儲過程語法存儲過程如同一門程序設計語言,同樣包含了數據類型、流程控制、輸入和輸出和它自己的函數庫。基本語法一 .創建存儲過程createproceduresp_name()beginend二 .調用存儲過程1.基本語法:callsp_name()注意:存儲過程名稱后面必須加括號,哪怕該存儲過程沒有參數傳遞三.刪除存儲過程1 .基本語法:dropproceduresp_name/2 .注意事項(1)不能在一個存儲過程中刪除另一個存儲過程,只能調用另一個存儲過程四.其他常用命令1.showprocedurestatus顯示數據庫中所有存儲的存儲過程基本信息,包括所屬數據庫,存儲過程名稱,創建時間
2、等2.showcreateproceduresp_name顯示某一個 mysql 存儲過程的詳細信息數據類型及運算符一、基本數據類型:略二、變量:自定義變量:DECLAREaINT;SETa=100;可用以下語句代替:DECLAREaINTDEFAULT100;變量分為用戶變量和系統變量,系統變量又分為會話和全局級變量用戶變量:用戶變量名一般以開頭,濫用用戶變量會導致程序難以理解及管理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 .算術運算符+力口 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 風格:/*注釋內容*/一般用于多行注釋流程控制一、順序結構二、分支結構ifcase
6、三、循環結構for 循環while 循環 loop 循環 repeatuntil 循環注:區塊定義,常用beginend;也可以給區塊起別名,如:lable:beginendlable;可以用 leavelable;跳出區塊,執行區塊以后的代碼begin 和 end 如同 C 語言中的和。輸入和輸出mysql 存儲過程的參數用在存儲過程的定義,共有三種參數類型,IN,OUT,INOUTCreateprocedure|function(IN|OUT|INOUT參數名數據類形.)IN 輸入參數表示該參數的值必須在調用存儲過程時指定,在存儲過程中修改該參數的值不能被返回,為默認值OUT 輸出參數該值
7、可在存儲過程內部被改變,并可返回INOUT 輸入輸出參數調用時指定,并且可被改變和返回IN 參數例子:CREATEPROCEDUREsp_demo_in_parameter(INp_inINT)BEGINSELECTp_in;-查詢輸入參數SETp_in=2;-修改selectp_in;-查看修改后的值 END;執行結果:mysqlsetp_in=1mysqlcallsp_demo_in_parameter(p_in)略mysqlselectp_in;略以上可以看出,p_in 雖然在存儲過程中被修改,但并不影響p_id 的值OUT 參數例子創建:mysqlCREATEPROCEDUREsp_d
8、emo_out_parameter(OUTp_outINT)BEGINSELECTp_out;/*查看輸出參數*/SETp_out=2;/*修改參數值*/SELECTp_out;/*看看有否變化*/END;執行結果:mysqlSETp_out=1mysqlCALLsp_demo_out_parameter(p_out)略mysqlSELECTp_out;略INOUT 參數例子:mysqlCREATEPROCEDUREsp_demo_inout_parameter(INOUTp_inoutINT)BEGINSELECTp_inout;SETp_inout=2;SELECTp_inout;END;
9、執行結果:setp_inout=1callsp_demo_inout_parameter(p_inout)/略selectp_inout;略附:函數庫mysql 存儲過程基本函數包括:字符串類型,數值類型,日期類型一、字符串類CHARSET(str)返回字串字符集CONCAT(string2,)連接字串INSTR(string.substring)/返回 substring 首次在 string 中出現的位置,不存在返回 0LCASE(string2)/轉換成小寫LEFT(string2,length)/從 string2 中的左邊起取 length 個字符LENGTH(string)/str
10、ing 長度LOAD_FILE(file_name)/從文件讀取內容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,即參數 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)/轉換成大寫RIGHT(string2,length)/取 string2 最后 length 個字符SPACE(count)/生成 count 個空格二、數值類型ABS(number2)/絕對值BIN(decimal_number)/十進制轉二進制CEILING(number2)/向上取整CONV(number2,from_base,to_base)/進制轉換F
13、LOOR(number2)/向下取整FORMAT(number,decimal_places)/保留小數位數HEX(DecimalNumber)/轉十六進制注:HEX()中可傳入字符串,則返回其 ASC-11 碼,如 HEX(DEF)返回 4142143也可以傳入十進制整數,返回其十六進制編碼,如 HEX(25)返回 19LEAST(number,number2,.)/求最小值MOD(numerator,denominator)/求余POWER(number,power)/求指數RAND(seed)/隨機數ROUND(number,decimals)/四舍五入,decimals 為小數位數注:
14、返回類型并非均為整數,如:(1)默認變為整形值mysqlselectround(1.23);+-+|round(1.23)|+-+|1|+-+1rowinset(0.00sec)mysqlselectround(1.56);+-+|round(1.56)|+-+|2|+-+1rowinset(0.00sec)(2)可以設定小數位數,返回浮點型數據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)/轉換時區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)/秒數轉成時間STR_TO_DATE(stringformat)/字串轉成時間,以 format 格式顯示TIMEDIFF(datetime1,datetime2)/兩個時間差TIME_TO_SEC(time)/時間轉秒數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 的數據類型
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 提升教學成果的有效策略和組織模式
- 美術跨學科融合教學的創新路徑與實踐探索
- 建筑垃圾消納場項目可持續設計方案
- 加快有效投資擴展的策略與路徑探索
- 高標準農田建設行動計劃
- 西醫臨床高效復習試題及答案
- 物理升中考試題及答案
- 網絡設計中的問題發現與解決策略試題及答案
- 文化產業管理考試獨特視角試題及答案
- 設定理想目標2024年圖書管理員考試試題及答案
- 管理溝通與人際交往概述
- 唇部整形美容手術知情同意書
- 如何進行ESG評級
- 大單元教學設計 統編版三年級下冊道德與法治 第二單元備課教案
- 2024年陜西普通高中學業水平考試通用技術試題
- 高中生如何正確處理男女同學之間的關系詳解
- 醫療試劑服務方案
- 陜09J01 建筑用料及做法圖集
- 施工負責人題庫2020
- 內燃機車柴油機冷卻水系統-直流傳動發內燃機車柴油機冷卻水系統
- 數據驅動的精細化運營管理
評論
0/150
提交評論