mysql存储过程,函数,已经流程控制案例
Posted 白小纯~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql存储过程,函数,已经流程控制案例相关的知识,希望对你有一定的参考价值。
最近在看一些mysql的视频,随手将自己的笔记分析到博客园,希望可以帮助到你,大家可以共同进步!加油
存储过程
含义:一组预先编译好的sQL语句的集合,理解成批处理语句
语法:
CREATE PROCEDURE 存储过程名(参数列表)
BEGIN
存储过程体(一组合法的SQL语句)
END
参数列表包含三部分: 参数模式 参数名 参数类型
参数模式分3中:
IN :该参数可以作为输入,也就是该参数需要调用方传入值
OUT :该参数可以作为输出,也就是该参数可以作为返回值
INOUT: 该参数既可以作为输入又可以作为输出,也就是既需要传入值又可以返回值
DELIMITER 结束标记
调用语句 :CALL 存储过程名(实参列表)
案例:
1, 创建带in模式参数的存储过程
根据id号,查询对应的身份信息
DELIMITER $
CREATE PROCEDURE mp2(IN id INT)
BEGIN
SELECT * FROM admin ad WHERE ad.id=id;
END $
CALL mp2(005) $
2, 创建out模式存储过程
DELIMITER $
CREATE PROCEDURE myout(IN id INT,OUT username VARCHAR(20))
BEGIN
SELECT admin.`username` INTO username
FROM admin
WHERE admin.`id`=id;
END $
#调用 CALL myout(4,@name)
3,创建带inout模式参数的存储过程
传入a和b两个值,最终a和b都翻倍并返回
DELIMITER $
CREATE PROCEDURE myinout(INOUT a INT,INOUT b INT)
BEGIN
SET a=a*2;
SET b=b*2;
END $
#调用 SET @m=10$ SET @n=20$ CALL myinout(@m,@n)$ SELECT @m,@n$
函数:
菜鸟教程:学习下常用的函数:https://www.runoob.com/mysql/mysql-functions.html
语法:
CREATE FUNCTION func_name ( [func_parameter] ) //括号是必须的,参数是可选的 RETURNS type
begin
end
-
- func_parameters为函数的参数列表,参数列表的形式为:[IN|OUT|INOUT] param_name type
案例:
1,根据ID获取员工姓名与员工工资
DELIMITER //
CREATE FUNCTION GetEmployeeInformationByID(id INT) RETURNS VARCHAR(300)
BEGIN
RETURN(SELECT CONCAT(\'employee name:\',employee_name,\'---\',\'salary: \',employee_salary) FROM employees WHERE employee_id=id);
END//
DELIMITER
调用: select GetEmployeeInformationByID(1)
2,创建函数,传入2个float,返回他们的和
DELIMITER //
CREATE FUNCTION getsun(num1 FLOAT,num2 FLOAT) RETURNS FLOAT
BEGIN
RETURN (num1+num2);
END//
调用: SELECT getsun(1,2)
查看数据库的函数或者是方法的操作可以在mysql这个库的pro这个表里面进行查询
流程控制:
含义:
案例:
1,if结构:实现多重分支
语法:
if 条件1 then 语句1;
elseif 条件2 then 语句2; ......
[else 语句n;]
end if;
应用 在begin end 中
以上是关于mysql存储过程,函数,已经流程控制案例的主要内容,如果未能解决你的问题,请参考以下文章
mysql数据库之 存储引擎事务视图触发器存储过程函数流程控制