<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 154  文章 - 60  trackbacks - 0
    <2007年9月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    聲明:

    該blog是為了收集資料,認識朋友,學習、提高技術,所以本blog的內容除非聲明,否則一律為轉載!!

    感謝那些公開自己技術成果的高人們!!!

    支持開源,尊重他人的勞動!!

    常用鏈接

    留言簿(3)

    隨筆分類(148)

    隨筆檔案(143)

    收藏夾(2)

    其他

    學習(技術)

    觀察思考(非技術)

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

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

    mysql 5.0存儲過程學習總結

    一.創建存儲過程

    1.基本語法:

     

    create procedure sp_name()
    begin
    ………
    end

    2.參數傳遞

    二.調用存儲過程

    1.基本語法:call sp_name()
    注意:存儲過程名稱后面必須加括號,哪怕該存儲過程沒有參數傳遞

    三.刪除存儲過程

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

    四.區塊,條件,循環

    1.區塊定義,常用
    begin
    ……
    end;
    也可以給區塊起別名,如:
    lable:begin
    ………..
    end lable;
    可以用leave lable;跳出區塊,執行區塊以后的代碼
    2.條件語句

     

    if 條件 then
    statement
    else
    statement
    end if;

    3.循環語句
    (1).while循環

    [label:] WHILE expression DO

    statements

    END WHILE [label] ;

     

    (2).loop循環

     

    [label:] LOOP

    statements

    END LOOP [label];

     

    (3).repeat until循環

     

    [label:] REPEAT

    statements

    UNTIL expression

    END REPEAT [label] ;

     

    五.其他常用命令

    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.3333
    DIV   整除 SET var5=10 DIV 3;  3
    %     取模 SET var6=10%3 ;     1

    比較運算符

    >            大于 1>2 False
    <            小于 2<1 False
    <=           小于等于 2<=2 True
    >=           大于等于 3>=2 True
    BETWEEN      在兩值之間 5 BETWEEN 1 AND 10 True
    NOT BETWEEN  不在兩值之間 5 NOT BETWEEN 1 AND 10 False
    IN           在集合中 5 IN (1,2,3,4) False
    NOT IN       不在集合中 5 NOT IN (1,2,3,4) True
    =            等于 2=3 False
    <>, !=       不等于 2<>3 False
    <=>          嚴格比較兩個NULL值是否相等 NULL<=>NULL True
    LIKE         簡單模式匹配 "Guy Harrison" LIKE "Guy%" True
    REGEXP       正則式匹配 "Guy Harrison" REGEXP "[Gg]reg" False
    IS NULL      為空 0 IS NULL False
    IS 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中出現的位置,不存在返回0
    LCASE (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開頭,直到字串長度為length
    LTRIM (string2 ) //去除前端空格
    REPEAT (string2 ,count ) //重復count次
    REPLACE (str ,search_str ,replace_str ) //在str中用replace_str替換search_str
    RPAD (string2 ,length ,pad) //在str后用pad補充,直到長度為length
    RTRIM (string2 ) //去除后端空格
    STRCMP (string1 ,string2 ) //逐字符比較兩字串大小,
    SUBSTRING (str , position  [,length ]) //從str的position開始,取length個字符,
    注:mysql中處理字符串時,默認第一個字符下標為1,即參數position必須大于等于1

     

    mysql> 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)返回19
    LEAST (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 ) //返回符號,正負或0
    SQRT(number2) //開平方

     
    三.日期時間類
     

    ADDTIME (date2 ,time_interval ) //將time_interval加到date2
    CONVERT_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格式顯示datetime
    DATE_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 
    posted on 2007-09-25 12:02 lk 閱讀(268) 評論(0)  編輯  收藏 所屬分類: DB
    主站蜘蛛池模板: 国产在线观看免费完整版中文版| 男女午夜24式免费视频| 亚洲成av人在线观看网站| 亚洲国产精品成人精品软件| 亚洲狠狠ady亚洲精品大秀| 亚洲精品国产成人| 亚洲白嫩在线观看| 亚洲天堂2016| 亚洲色大成网站www永久男同| 亚洲精品亚洲人成在线播放| 亚洲AV无码无限在线观看不卡| 亚洲精品国产av成拍色拍| 极品色天使在线婷婷天堂亚洲| 国产成人人综合亚洲欧美丁香花 | 亚洲精品无码永久中文字幕| 国产成人综合亚洲AV第一页| 久久精品a亚洲国产v高清不卡 | 91精品免费国产高清在线| 又粗又大又黑又长的免费视频| 91在线品视觉盛宴免费| 免费观看男人免费桶女人视频| 免费人成在线观看播放国产 | 日韩精品免费一区二区三区| 国产免费私拍一区二区三区| 亚洲精品无码av天堂| 亚洲精品国产成人片| 亚洲欧洲精品国产区| 亚洲精品无AMM毛片| 黄色a三级三级三级免费看| 中文字幕免费在线观看动作大片| 国产精品区免费视频| 最近的免费中文字幕视频 | 我们的2018在线观看免费高清| 成人毛片视频免费网站观看| 免费成人在线观看| 亚洲AV无码久久精品蜜桃| 亚洲人成片在线观看| 黄页网站在线免费观看| 日韩视频免费在线观看| 精品国产免费观看| 国产亚洲精品xxx|