回答
Google是你的朋友。對於「常規的MySQL功能的過程」的第一個匹配是這樣的:http://dev.mysql.com/doc/refman/5.0/en/stored-routines-syntax.html
簡要總結:
甲存儲程序或者是一個過程或函數。
使用CALL語句調用過程,並且只能使用輸出變量傳回值。
函數可以像聲明中的其他函數一樣從一個語句中調用,並且可以返回一個標量值。 MySQL的功能和mysql程序
MYSQL功能之間
雖然我同意RTFM情緒。這個答案現在被谷歌用來顯示內聯結果。 – Realistic 2016-10-11 16:51:18
差異
它必須返回值。
IN
,OUT
和INOUT
不能在函數中使用。但 返回數據類型必須在創建函數時聲明。函數可以從SQL語句中調用 。函數返回一個值。
MYSQL程序
返回值不是強制性的,也可以是使用了OUT參數 程序返回。可以使用
IN
|OUT
|INOUT
參數。程序 不能從SQL語句中調用。程序通過使用OUT
或INOUT
參數返回多個 值。
這裏我試圖總結一下函數和程序之間的區別。
- 函數總是使用return語句返回一個值。 PROCEDURE可能通過參數返回一個或多個值,或者根本不返回任何值。
- 函數通常用於計算,其中程序通常用於執行業務邏輯。
- 函數僅返回1值。過程可以返回多個值(最大值1024)。
- 默認情況下,存儲過程總是返回零整數值。函數返回類型可以是標量或表或表值。
- 存儲過程有一個預編譯的執行計劃,其中函數不是。
- 可以通過SQL語句直接調用函數,如從雙重選擇func_name,而過程不能。
- 存儲過程具有安全性並減少了網絡流量,並且我們還可以調用任何沒有的存儲過程。的應用程序。
- 函數可以在SQL查詢中使用,而過程不能用在SQL查詢中。這會導致b/w函數和過程存在重大差異。
你的第四點不正確,請更正答案 – 2017-01-12 05:35:26
函數必須返回一個值,但是在存儲過程中它是可選的(過程可以返回零或n值)。 函數只能有輸入參數,而程序可以有輸入/輸出參數。 函數可以從程序中調用,而程序不能從函數調用。
- 1. .NET功能和C#功能有什麼區別? (請用例子)
- 2. 功能性,結構性和程序性編程有什麼區別?
- 3. Azure'功能應用程序'與2x功能與2x'功能應用程序'
- 4. 區別對象和功能
- 5. 程序與功能性Javascript
- 6. 使用功能區的應用程序
- 7. 自執行功能與IIFE的區別
- 8. 代理功能與回撥的區別
- 9. F#管道和功能應用程序之間的神祕區別
- 10. WPF功能區 - 示例/開源應用程序
- 11. 程序和軟件的區別?
- 12. WPF棱鏡和功能區示例/教程
- 13. WPF應用程序功能區崩潰
- 14. 功能區帶引導程序
- 15. Kafka - DefaultPartitioner與MessageKey與自定義分區程序的區別?
- 16. PSQL程序功能無法識別列
- 17. 總和功能與分區
- 18. 功能區示例
- 19. 虛擬功能與純虛擬功能的區別?
- 20. Excel Interop:應用程序和應用程序類的區別
- 21. FreeBSD調度程序和Linux調度程序的區別
- 22. 應用程序域和應用程序池之間的區別?
- 23. 與.NET程序集LoadFile和LoadFrom之間的區別?
- 24. Rails應用程序使用session_id和remember_user_token與Devise的區別
- 25. MongoDB和DocumentDB與MongoDB驅動程序的區別
- 26. 用例與SRS的區別?
- 27. 課程與功能 -
- 28. 面向協議編程與面向對象編程的區別與範例
- 29. 程序功能與子程序的速度
- 30. CPP/CLI程序集和CS/VB程序集有什麼區別?
相關回答:[MySQL存儲過程vs函數](http://stackoverflow.com/questions/3744209/mysql-stored-procedure-vs-function-which-would-i-use-when/13510102#13510102) ,我找到了鏈接,而我正在改進我的答案,因此鏈接:) – 2013-06-15 14:57:28