什么是MySQL中的存储函数?

MySQL存储函数是指创建在MySQL数据库中的函数,作用域限定在创建它的数据库内。

存储函数的好处:

  1. 简化SQL语句,提高可读性。
  2. 避免重复编写SQL代码。
  3. 保护数据库免受SQL注入攻击。
  4. 可以直接在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语句的复用性与可读性。