mysql 存儲過程調用_mysql存儲過程的創建,刪除,調用及其他常用命令(轉)

mysql存儲過程的創建,刪除,調用及其他常用命令

一.創建存儲過程1.基本語法:create procedure sp_name()begin………end

2.參數傳遞

二.調用存儲過程1.基本語法:call sp_name()注意:存儲過程名稱后面必須加括號,哪怕該存儲過程沒有參數傳遞(實際上,可以不帶括號,可能我的mysql版本較新的原因)

三.刪除存儲過程1.基本語法:drop procedure sp_name//2. 注意事項(1)不能在一個存儲過程中刪除另一個存儲過程,只能調用另一個存儲過程

四.區塊,條件,循環1.區塊定義,常用begin……end;也可以給區塊起別名,如:lable:begin………..end lable;可以用leave lable;跳出區塊,執行區塊以后的代碼else statement end if ;

3.循環語句

五.其他常用命令1.show procedure status顯示數據庫中所有存儲的存儲過程基本信息,包括所屬數據庫,存儲過程名稱,創建時間等2.show create procedure sp_name顯示某一個存儲過程的詳細信息

mysql存儲過程中要用到的運算符mysql存儲過程學習總結-操作符

算術運算符

+     加   SET var1=2+2;       4-     減   SET var2=3-2;       1*      乘   SET var3=3*2;       6/     除   SET var4=10/3;      3.3333DIV   整除 SET var5=10 DIV 3; 3%     取模 SET var6=10%3 ;     1

比較運算符>            大於 1>2 False=           大於等於 3>=2 TrueBETWEEN      在兩值之間 5 BETWEEN 1 AND 10 TrueNOT BETWEEN 不在兩值之間 5 NOT BETWEEN 1 AND 10 FalseIN           在集合中 5 IN (1,2,3,4) FalseNOT IN       不在集合中 5 NOT IN (1,2,3,4) True=             等於 2=3 False<>, !=       不等於 2<>3 False<=>          嚴格比較兩個NULL值是否相等 NULL<=>NULL TrueLIKE          簡單模式匹配 "Guy Harrison" LIKE "Guy%" TrueREGEXP       正則式匹配 "Guy Harrison" REGEXP "[Gg]reg" FalseIS NULL      為空 0 IS NULL FalseIS NOT NULL 不為空 0 IS NOT NULL True

邏輯運算符

與 (AND)

AND

TRUE

FALSE

NULL

TRUE

TRUE

FALSE

NULL

FALSE

FALSE

FALSE

NULL

NULL

NULL

NULL

NULL

或(OR)

OR

TRUE

FALSE

NULL

TRUE

TRUE

TRUE

TRUE

FALSE

TRUE

FALSE

NULL

NULL

TRUE

NULL

NULL

異或(XOR)

XOR

TRUE

FALSE

NULL

TRUE

FALSE

TRUE

NULL

FALSE

TRUE

FALSE

NULL

NULL

NULL

NULL

NULL

位運算符

|   位或&   位與<< 左移位>> 右移位~   位非(單目運算,按位取反)mysq存儲過程中常用的函數,字符串類型操作,數學類,日期時間類。mysql存儲過程基本函數

一.字符串類CHARSET(str) //返回字串字符集CONCAT (string2 [,... ]) //連接字串INSTR (string ,substring ) //返回substring首次在string中出現的位置,不存在返回0LCASE (string2 ) //轉換成小寫LEFT (string2 ,length ) //從string2中的左邊起取length個字符LENGTH (string ) //string長度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) //在str后用pad補充,直到長度為lengthRTRIM (string2 ) //去除后端空格STRCMP (string1 ,string2 ) //逐字符比較兩字串大小,SUBSTRING (str , position [,length ]) //從str的position開始,取length個字符,注:mysql中處理字符串時,默認第一個字符下標為1 ,即參數position必須大於等於1mysql> select substring(’abcd’,0,2);+———————–+| substring(’abcd’,0,2) |+———————–+|                       |+———————–+1 row in set (0.00 sec)mysql> select substring(’abcd’,1,2);+———————–+| substring(’abcd’,1,2) |+———————–+| ab                    |+———————–+1 row in set (0.02 sec)

TRIM([[BOTH|LEADING|TRAILING] [padding] FROM]string2) //去除指定位置的指定字符UCASE (string2 ) //轉換成大寫RIGHT(string2,length) //取string2最后length個字符SPACE(count) //生成count個空格

二.數學類ABS (number2 ) //絕對值BIN (decimal_number ) //十進制轉二進制CEILING (number2 ) //向上取整CONV(number2,from_base,to_base) //進制轉換FLOOR (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為小數位數]注:返回類型並非均為整數,如:(1)默認變為整形值mysql> select round(1.23);+————-+| round(1.23) |+————-+|           1 |+————-+1 row in set (0.00 sec)

mysql> select round(1.56);+————-+| round(1.56) |+————-+|           2 |+————-+1 row in set (0.00 sec)

(2)可以設定小數位數,返回浮點型數據 mysql> select round(1.567,2);+—————-+| round(1.567,2) |+—————-+|           1.57 |+—————-+1 row in set (0.00 sec)

SIGN (number2 ) //返回符號,正負或0SQRT(number2) //開平方

三.日期時間類ADDTIME (date2 ,time_interval ) //將time_interval加到date2CONVERT_TZ (datetime2 ,fromTZ ,toTZ ) //轉換時區CURRENT_DATE ( ) //當前日期CURRENT_TIME ( ) //當前時間CURRENT_TIMESTAMP ( ) //當前時間戳DATE (datetime ) //返回datetime的日期部分DATE_ADD (date2 , INTERVAL d_value d_type ) //在date2中加上日期或時間DATE_FORMAT (datetime ,FormatCodes ) //使用formatcodes格式顯示datetimeDATE_SUB (date2 , INTERVAL d_value d_type ) //在date2上減去一個時間DATEDIFF (date1 ,date2 ) //兩個日期差DAY (date ) //返回日期的天DAYNAME (date ) //英文星期DAYOFWEEK (date ) //星期(1-7) ,1為星期天DAYOFYEAR (date ) //一年中的第幾天EXTRACT (interval_name FROM date ) //從date中提取日期的指定部分MAKEDATE (year ,day ) //給出年及年中的第幾天,生成日期串MAKETIME (hour ,minute ,second ) //生成時間串MONTHNAME (date ) //英文月份名NOW ( ) //當前時間SEC_TO_TIME (seconds ) //秒數轉成時間STR_TO_DATE (string ,format ) //字串轉成時間,以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 ,YEAR下面鏈接是官方的,比較有用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值