真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL數(shù)據(jù)庫提升篇-----存儲(chǔ)過程和函數(shù)

day06 MySQL數(shù)據(jù)庫存儲(chǔ)過程和函數(shù)

成都創(chuàng)新互聯(lián)10多年成都定制網(wǎng)站服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及高端網(wǎng)站定制服務(wù),成都定制網(wǎng)站及推廣,對(duì)成都工商代辦等多個(gè)方面擁有豐富的網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。

一、存儲(chǔ)過程和函數(shù)的概述:

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

二、存儲(chǔ)過程【procedure】

    1、創(chuàng)建存儲(chǔ)過程

        create procedure 自定義一個(gè)存儲(chǔ)名()
        begin 
            select 語句
        end;
        
        call 存儲(chǔ)名();    調(diào)用存儲(chǔ)過程

   2、刪除存儲(chǔ)過程

        drop procedure 存儲(chǔ)名;

    3、帶參數(shù)的存儲(chǔ)過程

        3.1:in參數(shù),即輸入?yún)?shù)

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

        3.2:out參數(shù),即輸出參數(shù)

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

        3.3:inout參數(shù),即輸入輸出參數(shù)

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

    4、定義變量

        4.1:定義局部變量

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

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

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

三、存儲(chǔ)函數(shù)【function】

    1、創(chuàng)建存儲(chǔ)函數(shù)定義的實(shí)例。

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

四、光標(biāo)的運(yùn)用

    在MySQL查詢數(shù)據(jù)庫腫,存儲(chǔ)過程和存儲(chǔ)函數(shù)中使用光標(biāo)可以實(shí)現(xiàn)逐條的讀取結(jié)果集中的記錄。主要包括以下幾個(gè)步驟:

    1、聲明光標(biāo):

        declare  光標(biāo)名  cursor  select_name
        譯;select_name:是一個(gè)select語句,返回一行或多行數(shù)據(jù)。

        實(shí)例:

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

    2、打開光標(biāo)

        open  光標(biāo)名稱

    3、使用光標(biāo)

        fetch  光標(biāo)名稱  into 列名;

    4、關(guān)閉光標(biāo)

        close  光標(biāo)名稱

五、查看存儲(chǔ)過程和函數(shù)

    1、使用show status 語句查看

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

    2、使用show create語句查看

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

    3、修改存儲(chǔ)過程和存儲(chǔ)函數(shù)

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

    4、刪除存儲(chǔ)過程和存儲(chǔ)函數(shù)

         drop  { procedure | function } sp_name

六、結(jié)束語:

    學(xué)到這里,存儲(chǔ)過程和存儲(chǔ)函數(shù)就已經(jīng)學(xué)完了哦!好好消化一下吧!


網(wǎng)站題目:MySQL數(shù)據(jù)庫提升篇-----存儲(chǔ)過程和函數(shù)
瀏覽路徑:http://weahome.cn/article/jjhioj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部