91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

尼木县| 化德县| 长岭县| 黎川县| 巫山县| 政和县| 乌什县| 米林县| 胶南市| 兰坪| 瑞金市| 铁岭市| 射洪县| 四子王旗| 左云县| 三台县| 喜德县| 军事| 五台县| 高密市| 梁平县| 两当县| 邮箱| 兰州市| 酉阳| 咸阳市| 镇雄县| 万源市| 德州市| 磴口县| 承德县| 思南县| 荔波县| 苏尼特右旗| 昭通市| 瑞昌市| 旬邑县| 鹤山市| 大厂| 赤城县| 九寨沟县|