標量函數:如何創建、調用、修改和刪除標量函數?
已發表: 2021-05-26目錄
什麼是標量函數?
SQL 是數據庫管理系統最常用的語言之一。 該語言主要用於輸入和從存儲庫中獲取數據。 就像其他編程語言一樣,SQL 也有一組函數。
在SQL Server 中有兩種主要類型的函數來操作數據:
- 系統定義的功能
- 用戶自定義函數
系統定義函數是預定義的內置函數,其功能無法更改。 另一方面,用戶定義的函數是可以設計為根據我們的需要執行自定義任務的函數。
SQL Server 提供三種類型的用戶定義函數
- 簡單的表值函數
- 標量表值函數
- 多語句表值函數
在本文中,我們將討論標量值函數(用戶定義函數)並學習如何創建它。
SQL 中的標量值函數接受多個參數並返回任何數據類型的單個值。 要創建標量值函數,請使用“Create”語句。 這些類型的函數包含在代碼中以簡化代碼。
例如,您可能需要在代碼的各個步驟中執行具有挑戰性的計算。 無需一次又一次地編寫代碼,您可以簡單地創建一個標量函數並將代碼封裝在其中。 現在,執行該繁瑣計算所需要做的就是使用簡單的語法調用標量函數。
請記住——標量值函數的名稱不能超過 128 個字符,並且必須以前綴 fn 開頭以方便起見。
如何創建標量函數?
要創建標量函數,您需要使用“創建函數”語句,如下所述:
1 CREATE FUNCTION [schemaName.]fnName(參數列表)
2 返回數據類型 AS
3 開始
4 條語句
5 返回值
6 結束
理解語法
第 1 行– CREATE FUNCTION 是告訴 SQL 服務器創建標量函數的命令。 在這裡,模式名稱是可選的; 如果未指定,SQL 默認使用 dbo。 模式名稱後跟函數名稱,函數名稱必須在括號內包含參數。
第 2 行 –在 RETURN 語句中指定返回值的數據類型。
第 3 行 –指定 return 語句以返回函數體內的值。
例子
以下示例創建一個函數,該函數根據標價、數量和折扣計算總銷售額:
創建函數 sales.TotalSale(
@數量 數量,
@listprice 1 月(15,4),
@disnt Jan(13, 2)
)
回歸一月(15,4)
作為
開始
返回@quantity * @list_price * (1 – @disnt);
結尾;
以後可以使用此函數來計算數據庫中任何銷售訂單的總銷售額。
如何調用標量函數?
可以像調用內置函數一樣調用標量函數。
示例:下面提到的語句清楚地顯示瞭如何調用TotalSale()函數:
選擇
sales.TotalSale(10,100,0.1) total_sale;
如何修改標量函數?
為了修改標量函數,使用關鍵字 ALTER 而不是 CREATE。 之後的所有其他語句保持不變:
ALTER FUNCTION [schemaName.]fnName (parameterList)
返回數據類型 AS
開始
陳述
返回值
結尾
如何刪除標量函數?
DROP FUNCTION 語句用於刪除已經存在的標量函數:
這是函數的語法:
刪除函數 [schemaName.]fnName;
例如,要刪除 TotalSale( ) 函數,您可以使用以下語句:
刪除功能 TotalSale
標量函數是 SQL 中最常用的函數之一。 這些函數像內置函數一樣工作,但實際上是用戶定義的。 如果需要在代碼中重複一組語句,您可以創建多個函數。 之後您需要做的就是調用函數並傳遞適當的參數。 以下是 SQL 標量函數的一些關鍵要點:
- 您可以在 SQL 語句中的任何位置使用標量函數。
- 標量函數使用 WHILE 循環和 IF 塊等邏輯。
- 標量函數可以調用其他函數。
- 標量函數無法訪問數據。
- 標量函數應該有一個 RETURN 值,因為它們接受多個參數但只返回一個值。
從世界頂級大學在線學習軟件課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
結論
在您的程序中創建標量函數是 SQL 中的一個好習慣。 標量函數是使任何人都可以閱讀代碼的最佳和有效方法之一。 我們希望本文對您了解標量函數有所幫助。 如果您期待成為一名程序員並且對該主題有全面的了解,請考慮參加upGrad的課程。 upGrad 提供來自全球領先大學的最佳計算機科學課程。
如果您有興趣了解有關全棧軟件開發的更多信息,請查看 upGrad 和 IIIT-B 的軟件開發執行 PG 計劃 – 全棧開發專業化,專為在職專業人士設計,提供 500 多個小時的嚴格培訓,9 + 項目和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。
SQL中的函數是什麼?
函數是 SQL 中一種特殊類型的過程,它返回一個值。 函數返回單個值,返回列表中的多個值,或將一組行聚合為單個值。 換句話說,它會即時進行計算,而不是將信息存儲在數據庫中,以便您的查詢可以快速進行。 函數是 SQL 中定義的謂詞的基本集合,用於組成 SQL 語句。 函數分為標量函數和聚合函數。 標量函數是從表達式返回單個值的函數。
什麼是 SQL?
SQL 代表結構化查詢語言。 它是一種特殊的編程語言,用於管理數據。 它用於大多數數據庫系統。 數據可以是文本、數字、圖像和視頻的形式。 SQL 語言用於執行數據查詢和數據錄入。 SQL 語言是最強大的語言之一。 它用於在數據庫中存儲數據。 它被各種數據庫系統支持,如 MySQL、Oracle、PostgreSQL 等。這些系統可用於存儲大量數據,可用於形成數據庫。 它是數據庫管理系統的核心語言。 它是數據庫系統的通用語言。 數據庫是由 SQL 結構化的,所以稱為結構化查詢語言。 SQL用於數據庫管理和管理數據庫操作。 它是數據庫查詢和數據輸入的標準語言。
SQL 和 MongoDB 有什麼區別?
SQL(結構化查詢語言)是一種編程語言,用於管理關係數據庫管理系統中的數據。 SQL 是世界上最重要和最廣泛使用的編程語言之一。 它是關係數據庫管理系統中存儲、檢索和管理數據的標準。 例如,谷歌、亞馬遜、Facebook、Instagram、Twitter 正在使用 SQL 來存儲和管理數十億的用戶數據。 MongoDB 是一個非關係型數據庫。 它是一個基於文檔且無模式的數據庫。 MongoDB 中的數據以類似 JSON 的文檔的形式存儲。