HOWTO · MySQL
MySQL 函式
本文介紹如何在 MySQL 中使用和建立一個簡單的函式。
本文介紹如何在 MySQL 中使用和建立一個簡單的函式。
MySQL 中的函式是什麼
在 MySQL 程式語言中,函式是一組語句,它們執行一組行並返回一個值。
當功能塊被外部呼叫時,這組程式碼執行業務邏輯,而轉換恰好返回 void 或任何單獨的值。
函式有助於在儲存和檢索資料之前處理資料。它有多種型別,如單值或多個引數函式。
我們可以從函式中獲得的好處包括:
- 在不同的地方使用相同的功能進行一些操作。
- 一處改動,處處可見效果。
- 功能易於維護。
- 它允許程式碼共享和所有用途的一致性。
- 減少相同任務的返工和重複使用現有功能。
MySQL 中的函式原型或語法如下。
CREATE FUNCTION function_name [ (parameter datatype [, parameter datatype]) RETURNS return_datatype
BEGIN
Declaration_section
Executable_section
END;
讓我們對上述語法有更多的見解和細節。
- 語法以
CREATE FUNCTION語句開頭;它在內部表示 MySQL,需要建立一個新方法。 - 在 function 關鍵字之後,
function_name是特定名稱,表示行塊是所提供語句的別名。當給定函式名時,使用者嘗試執行給定的集合以執行所需的函式。 - 在函式名旁邊,可以有
n個引數作為引數傳遞給函式。引數列表由變數名和變數資料型別兩部分組成。
3.1。變數名可用於函式操作邏輯。發生轉換的語句集使用引數變數來處理接收到的資料。
3.2 變數名後的資料型別宣告限制使用傳遞定義的引數。資料型別作為主要驗證來驗證傳遞的引數。 RETURNS關鍵字指定下一個值是函式的單個返回值。Return_datatype是函式返回值的資料型別。它還包括資料型別的大小,例如VARCHAR(20)。BEGIN關鍵字在內部指定關鍵字旁邊的行是執行下一組行的起點。它表明這是功能塊的開始。Declaration_section是宣告所有變數的功能塊的位置或頂部。Executable_section是實際程式碼行用於操作的塊。這些行是執行業務轉換邏輯的確切行。END;是指定塊結束的終端關鍵字。該關鍵字與BEGIN語句結合使用。該語句說明了塊的開始和結束。
在 MySQL 中使用 CREATE FUNCTION 建立函式
建立函式的先決條件是:
- 有一個正確的 MySQL 連線並保持伺服器正常執行。
- 建立一個資料庫並在需要建立函式的地方使用該資料庫(例如:
myFirstDb)。 - 預先建立一個可以呼叫函式的表(例如:
stu_name)。 - 在函式起作用的表中輸入一些條目並做出響應。
CREATE TABLE `stu` (
`id` varchar(255) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
`dob` date DEFAULT NULL
);
INSERT INTO `myFirstDb`.`stu`(`id`,`name`,`dob`) VALUES ('111','Test',DATE('1970-01-08'));
DELIMITER $$
CREATE DEFINER=`root`@`localhost` FUNCTION `get_stu_name`(stu_id VARCHAR(50)) RETURNS varchar(50) CHARSET utf8mb4
BEGIN
declare stu_name varchar(50) ;
select name into stu_name from myFirstDb.stu where id = stu_id;
RETURN stu_name;
END$$
DELIMITER ;
當我們使用帶有 SELECT 關鍵字的函式名時,會發生以下函式呼叫。呼叫語句如下所示。
Select get_stu_name('111');
呼叫語句將引數 1 作為學生 ID 傳遞並執行該函式。要成功執行函式名稱,必須存在一個學生表,其中 id 作為屬性之一。
當記錄存在時,該函式將與學生 ID 對應的學生姓名返回為 1。