MySQL存储函数是指创建在MySQL数据库中的函数,作用域限定在创建它的数据库内。
存储函数的好处:
- 简化SQL语句,提高可读性。
- 避免重复编写SQL代码。
- 保护数据库免受SQL注入攻击。
- 可以直接在SQL语句中调用。
创建存储函数语法:
sql
CREATE FUNCTION function_name([param type])
RETURNS return_type
BEGIN
function_body
END;
例如,创建一个简单的存储函数:
sql
DELIMITER $$ # 使用$$作为结束标记
CREATE FUNCTION hello()
RETURNS VARCHAR(20)
BEGIN
RETURN 'Hello!';
END $$
DELIMITER ; # 恢复;为结束标记
调用存储函数的语法为:
sql
SELECT function_name();
例如:
sql
SELECT hello();
输出:
+---------+
| hello() |
+---------+
| Hello! |
+---------+
我们也可以在存储函数中使用参数:
sql
CREATE FUNCTION concat_strings(str1 VARCHAR(20), str2 VARCHAR(20))
RETURNS VARCHAR(40)
BEGIN
RETURN CONCAT(str1, str2);
END $$
调用:
sql
SELECT concat_strings('Hello', ' world!');
输出:
+-----------------------------------+
| concat_strings('Hello', ' world!') |
+-----------------------------------+
| Hello world! |
+-----------------------------------+
总结:
存储函数是MySQL中常用的程序化对象,可以有效地提高SQL语句的复用性与可读性。