一天一點MySQL複習——預存程序

來源:互聯網
上載者:User

標籤:

一、預存程序概念

  使用SQL編寫訪問資料庫的代碼時,可用兩種方法儲存和執行這些代碼,一種是在用戶端儲存代碼,並建立向資料庫伺服器發送的SQL命令(或SQL語句),比如在C#、Java等用戶端程式設計語言中嵌入訪問資料庫的SQL語句;另一種是將SQL語句儲存在資料庫伺服器端(實際是儲存在具體的資料庫中,作為資料庫的一個對象),然後由應用程式調用執行這些SQL語句。

  這些儲存在資料庫伺服器端供用戶端調用執行的SQL語句就是預存程序,用戶端應用程式可以直接調用並執行預存程序,預存程序的執行結果可返回給用戶端。

  預存程序可以:

  • 接受輸入參數並以輸出參數的形式將多個值返回給調用者。
  • 包含執行資料庫操作的語句。
  • 將查詢語句執行結果返回到用戶端記憶體中。

  總之,預存程序實際是儲存在資料庫伺服器上的、由SQL語句和流程式控制制語句組成的先行編譯集合,它以一個名字儲存並作為一個單元處理,可由應用程式調用執行,允許包含控制流程、邏輯以及對資料的查詢等操作。預存程序可以接受輸入參數,並可具有輸出參數,還可以返回單個或多個結果集。

 

二、建立預存程序
create procedure 過程名字(參數列表)begin    --過程體end

  簡單一實例:

 

三、查看預存程序
show procedure status [like‘procedure_name‘];

  簡單一實例:

  其中‘\G‘表示:以每組顯示查詢結果

  查看建立語句:

show create procedure procedure_name;

 

四、調用預存程序

  不能用select來訪問預存程序:

  調用預存程序應該用 call:

 

五、修改&刪除預存程序

  預存程序不能修改,只能刪除後在添加

drop procedure 預存程序名;

 

六、預存程序參數

 

  函數的參數需要資料類型指定,過程比函數更嚴格

  過程還有自己的類型限定:

  • in:資料只是從外部傳入給內部使用(值傳遞),可以是數值也可以是變數
  • out:只允許過程內部使用,只能傳遞變數,引用傳遞,外部的資料會被先清空才會進入到內部
  • inout:外部可以在內部使用,內部修改也可以在外部使用,引用傳遞,只能傳遞變數

  in參數為值傳遞

  out參數為引用傳遞,傳遞至過程中,會將傳遞參數的本身值清空

  inout參數為引用傳遞

  執行個體:

    delimiter $$    create procedure pro2(in int_1 int,out int_2 int,inout int_3 int)    begin         -- 查看三個變數        select int_1,int_2,int_3;    end    $$    delimiter ;

    delimiter $$    create procedure pro3(in int_1 int,out int_2 int,inout int_3 int)    begin        -- 查看三個局部變數;        select int_1,int_2,int_3;                -- 修改三個局部變數;        set int_1 = 10;        set int_2 = 100;        set int_3 = 1000;        -- 查看三個局部變數        select int_1,int_2,int_3;        -- 查看三個全域變數        select @int_1,@int_2,@int_3;        --修改三個全域變數        set @int_1 = ‘a‘;        set @int_2 = ‘b‘;        set @int_3 = ‘c‘;        --查看三個全域變數        select @int_1,@int_2,@int_3;    end    $$    delimiter ;

 

一天一點MySQL複習——預存程序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.