MySQL之存储过程和函数

时间:2021-03-08 11:40:40
存储过程和函数: 1.创建存储过程和函数: 存储过程: delimiter $$ create procedure proc_name() BEGIN 查询语句; // 记得加分号 END $$ delimiter ; 函数: delimiter $$ create function func_name(属性字段 数据类型) returns 数据类型 // 这的数据类型与下面查询语句查询的属性字段数据类型相同 BEGIN return (查询语句) END $$ delimiter ; 2.使用存储过程和函数: 存储过程: call proc_name; 函数: select func_name(参数); 3.查看存储过程: show procedure status; show function status; show create procedure proc_name; show create function func_name; 4.修改: ALTER PROCEDURE procedure_name   [characteristic…] ALTER FUNCTION function_name   [characteristic…] 5.删除: DROP PROCEDURE proce_name; DROP FUNCTION func_name; 例子: DROP PROCEDURE IF EXISTS emplayee_count; DELIMITER $ #创建存储过程 CREATE PROCEDURE emplayee_count (OUT NUM INTEGER) BEGIN #声明变量 DECLARE   emplayee_sal INTEGER;DECLARE   flag INTEGER; #声明游标 DECLARE cursor_emplayee   CURSOR FOR SELECT sal FROM t_employee; DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag = 1; #设置结束标志 SET flag=0;SET NUM=0;‘ #打开游标 OPEN cursor_emplayee; #遍历游标指向的结果集 FETCH cursor_emplayee INTO emplayee_sal; WHILE flag<>1 DO IF emplayee_sal >999 THEN SET num=num+1; END IF; FETCH cursor_emplayee INTO emplayee_sal; END WHILE; #关闭游标 CLOSE cursor_emplayee; END$ DELIMITER ;   如何使用: call emplayee_count(@count); select @count;