Mysql預存程序和函數區別介紹_Mysql

來源:互聯網
上載者:User
預存程序是使用者定義的一系列sql語句的集合,涉及特定表或其它對象的任務,使用者可以調用預存程序,而函數通常是資料庫已定義的方法,它接收參數並返回某種類型的值並且不涉及特定使用者表。

預存程序和函數存在以下幾個區別:

1)一般來說,預存程序實現的功能要複雜一點,而函數的實現的功能針對性比較強。預存程序,功能強大,可以執行包括修改表等一系列資料庫操作;使用者定義函數不能用於執行一組修改全域資料庫狀態的操作。

2)對於預存程序來說可以返回參數,如記錄集,而函數只能傳回值或者表對象。函數只能返回一個變數;而預存程序可以返回多個。預存程序的參數可以有IN,OUT,INOUT三種類型,而函數只能有IN類~~預存程序聲明時不需要傳回型別,而函式宣告時需要描述傳回型別,且函數體中必須包含一個有效RETURN語句。

3)預存程序,可以使用非確定函數,不允許在使用者定義函數主體中內建非確定函數。

4)預存程序一般是作為一個獨立的部分來執行( EXECUTE 語句執行),而函數可以作為查詢語句的一個部分來調用(SELECT調用),由於函數可以返回一個表對象,因此它可以在查詢語句中位於FROM關鍵字的後面。 SQL語句中不可用預存程序,而可以使用函數。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.