一文入門SQL——自定義函數
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
本篇講的是自定義函數(Function)。 當我們學習編程語言的時候,也會遇到函數。函數的作用是什么呢?它可以把我們經常使用的代碼封裝起來,需要的時候直接調用即可。這樣既提高了代碼效率,又提高了可維護性。 SQL 中的函數一般是在數據上執行的,可以很方便地轉換和處理數據。一般來說,當我們從數據表中檢索出數據之后,就可以進一步對這些數據進行操作,得到更有意義的結果,比如返回指定條件的函數,或者求某個字段的平均值等。 SQL中的函數包含內置函數和自定義函數,本文講解自定義函數。 用戶定義函數與編程語言中的函數相似,其結構與存儲過程相似,但函數必須有一個RETURN子句,用于返回函數值。函數說明要說明函數名、結果值的類型,以及參數類型等。 注意:以下全部是以MySQL為演示,其他類型數據庫語法可能不一致。 一、創建自定義函數 (1)創建計算立方體體積的標量函數,此函數有三個輸入參數,分別為正方體的長寬高,類型均為整型,返回值體積也是整型: #解決1418號報錯(臨時生效,重啟后失效) set global log_bin_trust_function_creators=TRUE;
delimiter $$ CREATE FUNCTION CubicVolume (CubeLength int,CubeWidth int,CubeHeight int) RETURNS int RETURN (CubeLength*CubeWidth*CubeHeight); $$ delimiter; #定義標量函數 delimiter $$ CREATE FUNCTION GoodsCount(class varchar(10)) RETURNS int BEGIN DECLARE x int; SET x=( SELECT count(*) FROM Tbl_GoodsClass a JOIN Tbl_Goods b ON a.GoodsClassID=b.GoodsClassID WHERE GoodsClassName=class); RETURN x; END; $$ delimiter; SELECT CubicVolume(2,3,4) ; #查詢運動器材的種類數 SELECT GoodsCount('運動器材'); 刪除GoodsCount函數的語句如下: drop Function GoodsCount; 這樣就把創建好的函數給刪除了。 文中有個小點需要注意一下,直接運行自定義函數將會出現1418錯誤,這個我們可以通過運行 set global log_bin_trust_function_creators=TRUE; 或者 set global log_bin_trust_function_creators=1; 來解決,不過這個是臨時生效,重啟應用后失效,更詳細的解決方案可訪問https://blog.csdn.net/qq_38361800/article/details/105950335來解決。 該文章在 2024/3/29 23:23:24 編輯過 |
關鍵字查詢
相關文章
正在查詢... |