中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL數據庫提升篇-----存儲過程和函數

發布時間:2020-06-23 05:09:28 來源:網絡 閱讀:802 作者:孤獨一夜 欄目:MySQL數據庫

day06 MySQL數據庫存儲過程和函數

一、存儲過程和函數的概述:

    數據庫的存儲過程和存儲函數是指在數據庫中定義的一些sql語句的集合,直接調用這些存儲過程的名字或存儲函數的名字就可以直接使用這些sql。可以避免開發人員大量的寫一些sql語句操作數據,可以減少客戶端和服務器端的數據傳輸。所以,學好存儲過程和存儲函數也是很重要的哦!


二、存儲過程【procedure】

    1、創建存儲過程

        create procedure 自定義一個存儲名()
        begin 
            select 語句
        end;
        
        call 存儲名();    調用存儲過程

   2、刪除存儲過程

        drop procedure 存儲名;

    3、帶參數的存儲過程

        3.1:in參數,即輸入參數

             create procedure 存儲名(in 列名 數據類型)
             begin 
                select 語句
             end;
             
             call 存儲名(列名的值);

        3.2:out參數,即輸出參數

             create procedure 存儲名(out 列名 數據類型)
             begin 
                select * into 列名 from 表名;
             end;
             
             call 存儲名(@列名);

        3.3:inout參數,即輸入輸出參數

            create procedure 存儲名(inout 列名 數據類型)
             begin 
                 select * into 列名 from 表名;
             end;
             
             set @列名=某個值    //定義一個變量并賦值
             
             call 存儲名(@列名);

    4、定義變量

        4.1:定義局部變量

            declare a int   //定義
            set a=10;       //賦值
            select a;       //輸出

        4.2:定義全局變量“@作為起始符”

            set @b=20;    //定義會話變量
            select @b;    //輸出


三、存儲函數【function】

    1、創建存儲函數定義的實例。

      create function 函數名(a int , b int) returns int
      begin
          declare c int;
          set c=a+b;
          return c;
      end;
      
      select 函數名(a的數值,b的數值)     //調用存儲函數

四、光標的運用

    在MySQL查詢數據庫腫,存儲過程和存儲函數中使用光標可以實現逐條的讀取結果集中的記錄。主要包括以下幾個步驟:

    1、聲明光標:

        declare  光標名  cursor  select_name
        譯;select_name:是一個select語句,返回一行或多行數據。

        實例:

         declare  info_student  cursor for select
         sid,name,age
         from student
         where sid=1;

    2、打開光標

        open  光標名稱

    3、使用光標

        fetch  光標名稱  into 列名;

    4、關閉光標

        close  光標名稱

五、查看存儲過程和函數

    1、使用show status 語句查看

        show  { procedure | function } status [like 'pattern']
        譯:
            procedure:表示查詢存儲過程
            function:表示查詢存儲函數
            like 'pattern':用來匹配存儲過程或函數名稱。

    2、使用show create語句查看

        show create { procedure | function } sp_name;
        譯;
            procedure:表示查詢存儲過程
            function:表示查詢存儲函數
            sp_name:表示存儲過程或函數名稱

    3、修改存儲過程和存儲函數

             alter { procedure | function } sp_name 
        { contains sql | no sql | reads sql data | modifies sql data }
        | sql security { definer | invoker }
        | comment 'string'
        譯:
             procedure | function:表示是存儲過程還是存儲函數
             sp_name :表示名稱
             contains sql:表示子程序包含sql語句,但是不包含讀寫數據的語句
             no sql:表示子程序包含sql語句
             reads sql data:表示子程序中包含讀數據的語句
             modifies sql data :表示子程序中包含寫數據的語句
             definer | invoker:表示指明權限執行,前者是定義者自己能夠執行,
                                 后者是調用者可以執行
             comment 'string':注釋信息

    4、刪除存儲過程和存儲函數

         drop  { procedure | function } sp_name



六、結束語:

    學到這里,存儲過程和存儲函數就已經學完了哦!好好消化一下吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湘阴县| 忻城县| 临高县| 平潭县| 平阳县| 霍州市| 日土县| 广东省| 偏关县| 宜宾市| 惠安县| 富宁县| 黄山市| 蕉岭县| 永清县| 德惠市| 崇阳县| 天峨县| 广南县| 德格县| 甘德县| 沁源县| 巴彦淖尔市| 翼城县| 海兴县| 隆林| 吴旗县| 定边县| 黄平县| 长顺县| 桃源县| 河间市| 稻城县| 高平市| 志丹县| 庆元县| 合作市| 翁源县| 福海县| 黑山县| 建始县|