標籤:ram ima create bsp UNC mysq maria 修改 複用
函數
函數,就是將一段代碼封裝到一個結構中,在需要執行該段代碼的時候,直接調用該結構(函數)執行即可。此操作,實現了代碼的複用。在 MySQL 中,函數有兩種,分別為:系統函數和自訂函數。
1、系統函數
顧名思義,系統函數就是系統定義好的函數,在需要的時候,我們直接調用即可。
任何函數都有傳回值(對於空函數,我們就認為其傳回值為空
),而且在 MySQL 中任何有傳回值的操作都是通過select
來操作的,因此 MySQL 的函數調用就是通過select
來實現的。
參考官方文檔:https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html
2、自訂函數(user-defined function:UDF)
自訂函數儲存在mysql.proc表中
SHOW FUNCTIOIN STATUS;
SHOW CREATE FUNCTION function_name
DROP FUNCTION function_name
SELECT function_name(parameter_value,...)
SET parameter_name = value[,parameter_name = value...]
SELECT INTO parameter_name
樣本1:無參UDF
MariaDB [testdb]> CREATE FUNCTION simpleFun() RETURNS VARCHAR(20) RETURN "Hello World!“;
樣本2:有參數UDF
MariaDB [testdb]> DELIMITER // #修改結束符為//MariaDB [testdb]>CREATE FUNCTION deleteById(uid SMALLINT UNSIGNED) RETURNS VARCHAR(20) -> BEGIN ->DELETE FROM students WHERE stuid = uid; -> RETURN (SELECT COUNT(uid) FROM students); -> END//Query OK, 0 rows affected (0.01 sec)MariaDB [testdb]> DELIMITER ; #定義完函數後再修改回來
樣本3:
自訂函數中定義局部變數文法:
DECLARE 變數1[,變數2,... ]變數類型 [DEFAULT 預設值]
說明:局部變數的作用範圍是在BEGIN...END程式中,而且定義局部變數語句必須在BEGIN...END的第一行定義
MariaDB [testdb]> DELIMITER // #修改結束符為//MariaDB [testdb]> CREATE FUNCTION addTwoNumber(x SMALLINT UNSIGNED, Y SMALLINT UNSIGNED) -> RETURNS SMALLINT -> BEGIN -> DECLARE a, b SMALLINT UNSIGNED DEFAULT 10; -> SET a = x, b = y; -> RETURN a+b; -> END//Query OK, 0 rows affected (0.01 sec)MariaDB [testdb]> DELIMITER ; #定義完函數後再修改回來MariaDB [testdb]> SELECT addTwoNumber(8,9); #調用UDF求和+-------------------+| addTwoNumber(8,9) |+-------------------+| 17 |+-------------------+
查看函數
查看函數,基本文法為:
SHOW FUNCTION STATUS;
查看函數定義
SHOW CREATE FUNCTION function_name
資料庫MySQL/mariadb知識點——函數