数据库MySQL-函数
函数
含义:一组预先编译好的sql语句的集合,理解成批处理语句。
好处:
1、提高代码的重用性
2、简化操作
3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率
函数和存储过程的区别:
存储过程:可以有0个返回,也可以有多个返回。适合做批量的插入、批量的更新。
函数:只能有一个返回,适合做处理数据后返回一个结果。
*/
一、创建语法
CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型
BEGIN
函数体
END
注意:
1、参数列表包括两部分:
参数名 参数类型
2、函数体:肯定会有return语句,如果没有也会报错
如果return语句没有放在函数体的最后也不报错,但不建议。
3、函数体中仅有一句话,则可以省略begin end
4、使用delimiter语句设置结束标记
*/
二、调用语法:
SELECT 函数名(参数列表)
CREATE FUNCTION myf1() RETURNS INT
BEGIN
DECLARE a INT DEFAULT 0;
SELECT COUNT(*) INTO a
FROM `employees`;
RETURN a;
END $
DROP myf1;
CREATE FUNCTION myf2(NAME VARCHAR(20)) RETURNS DOUBLE
BEGIN
SET @sal = 0;
SELECT salary INTO @sal
FROM employees
WHERE last_name = NAME;
RETURN @sal;
END$
CREATE FUNCTION myf3(departmentName VARCHAR(20)) RETURNS DOUBLE
BEGIN
DECLARE ans DOUBLE DEFAULT 0;
DECLARE t VARCHAR(20) DEFAULT NULL;
SELECT d.`department_name`,AVG(salary) INTO t,ans
FROM `departments` d
INNER JOIN `employees` e
ON e.`department_id` = d.`department_id`
WHERE d.`department_name`= departmentName;
RETURN ans;
END $
SELECT myf3('IT')$
三、查看函数
SHOW CREATE FUNCTION myf3;
四、删除函数
DROP FUNCTION myf3;