狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

一文入門SQL——自定義函數

admin
2024年3月29日 17:17 本文熱度 621

本篇講的是自定義函數(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;

(2)創建查詢指定商品類別的函數,Tbl_Goods和Tbl_GoodsClass表如下圖所示:

#定義標量函數

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;


二、調用自定義函數
調用標量函數
(1)求長2,寬3,高4的立方體體積:
SELECT CubicVolume(2,3,4) ;
結果是:

(2)查詢運動器材的種類數
#查詢運動器材的種類數
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 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved