MySQL进阶19--函数的创建(举例)/设置mysql的创建函数的权限/查看(show)/删除(drop) / 举4个栗子

2022-11-18,,,,

/*MySQL进阶19 函数

存储过程和函数:都类似于java中的方法;
存储过程和函数通用好处:
1.提高代码的重用性
2.简化操作
好处: 减少操作次数,减少了编译次数,减少了和服务器的连接次数,提高了效率
---------------
#区别
存储过程 (可以有0个或者多个返回值),适合做批量插入或者批量更新
函数: 有且仅有一个返回值 ; 适合做处理数据后的返回一个结果 */
/*
#一: 创建语法
create function 函数名(参数列表) returns 返回类型
begin
函数体
end 注意:
参数列表 包含两个部分;
参数名 参数类型;
函数体 : 肯定有return 语句,如果没有会报错;
3. 函数体中仅有一句话,则可以省略begin end
4. 使用delimiter 语句设置结束标记
delimiter $; #二: 调用自定义函数
select 函数名(参数列表) */
#-------------------案例演示函数------------------------------
#1 无参有返回 #根据提示,设置mysql函数权限
SHOW VARIABLES LIKE 'log_bin_trust_function_creators';
SET @@global.log_bin_trust_function_creators='ON';
#案例 : 返回公司的员工个数 [如下代码可在本地运行,不用在cmd终端打开运行]
DELIMITER $
CREATE FUNCTION myf1() RETURNS INT
BEGIN
DECLARE rt1 INT DEFAULT 0; #定义局部变量/赋值并returns SELECT COUNT(*) INTO rt1
FROM employees;
RETURN rt1;
END $
SELECT myf1() $; ##结果是 : 107 #2.有参数有返回
#案例1:根据员工名,返回它的工资
DELIMITER $
CREATE FUNCTION myf2(empName VARCHAR(20)) RETURNS DOUBLE
BEGIN
DECLARE rt DOUBLE DEFAULT 0;
SELECT `salary` INTO rt
FROM employees e
WHERE e.last_name = empName AND e.first_name='empName';
RETURN rt;
END $
SET @empName='K_ing' $
SELECT myf2(@empName) $; ##返回值为 : 24000 #案例2: 根据部门名,返回该部门的平均工资
DELIMITER $
CREATE FUNCTION myf5(depName VARCHAR(20)) RETURNS DOUBLE
BEGIN
DECLARE rt DOUBLE ;
SELECT AVG(salary) INTO rt
FROM employees e
JOIN departments d ON e.department_id = d.department_id
WHERE d.department_name=depName;
RETURN rt;
END $
SELECT myf5('IT') $; ##结果是 : 5760 #三: 查看函数的过程/charset/Datebase collation等信息 SHOW CREATE FUNCTION myf5; #四: 删除函数(命令行可操纵!)
DROP FUNCTION myf3; #案例"
#1.创建函数,实现传入两个float ,返回两者之和
DELIMITER $
CREATE FUNCTION test_fun1(a FLOAT,b FLOAT) RETURNS FLOAT
BEGIN
DECLARE SUM FLOAT DEFAULT 0;
SET SUM=a+b;
RETURN SUM;
END $ SELECT test_fun1(1,12) $ ##结果为:13

MySQL进阶19--函数的创建(举例)/设置mysql的创建函数的权限/查看(show)/删除(drop) / 举4个栗子的相关教程结束。

《MySQL进阶19--函数的创建(举例)/设置mysql的创建函数的权限/查看(show)/删除(drop) / 举4个栗子.doc》

下载本文的Word格式文档,以方便收藏与打印。