mysql怎么做存储过程 mysql存储过程怎么创建( 二 )


3)create procedure proc15() // 没有输入与输出
4)create procedure demo_multi_param(in id bigint,in name varchar(32),out c int) //多输入与输出
3、过程体的开始与结束使用BEGIN与END进行标识 。
4、select count (*) into s from student; // 过程体,一系列的逻辑语句 , sql语句
5、delimiter ; 用完了之后要把分隔符还原 。
MySQL里面sql语句调用存储过程 , 该如何写?这样:
CREATE PROCEDURE sp_add(a int, b int,out c int)
begin
set c=a+ b;
end;
调用过程:
call sp_add (1,2,@a);
select @a;
扩展资料:
注意事项
存储过程(stored procedure)是一组为mysql怎么做存储过程了完成特定功能的SQL语句集合mysql怎么做存储过程,经编译后存储在服务器端的数据库中mysql怎么做存储过程 , 利用存储过程可以加速SQL语句的执行 。
存储过程分为系统存储过程和自定义存储过程 。
系统存储过程在master数据库中 , 但是在其mysql怎么做存储过程他的数据库中可以直接调用,并且在调用时不必在存储过程前加上数据库名,因为在创建一个新数据库时,系统存储过程在新的数据库中会自动创建 。
自定义存储过程,由用户创建并能完成某一特定功能的存储过程,存储过程既可以有参数又有返回值,但是它与函数不同,存储过程的返回值只是指明执行是否成功,并不能像函数那样被直接调用,只能利用execute来执行存储过程 。
创建存储过程
SQL Server创建存储过程:
create procedure过程名
@parameter参数类型
@parameter参数类型
。。。
as
begin
end
执行存储过程:execute 过程名
五、MYSQL存储过程和函数 ? create procedure用来创建存储过程,create function用来创建函数
?Delimiter命令是改变语句的结束符,MySQL默认的结束符为;号,由于procedure和function中的;号并不代表创建的结束,所以要替换成另外的结束符以便表示创建的结束
? rontine_body子句可以包含一个简单的SQL语句,也可以包含多个SQL语句,通过begin…end将这多个SQL语句包含在一起
? MySQL存储过程和函数中也可以包含类似create和drop等DDL语句
? comment子句用来写入对存储过程和函数的注释
?Language子句用来表示此存储过程和函数的创建语言
?存储过程和函数被标注为deterministic表明当输入相同的参数是会返回相同的结果,反之如果是not deterministic则表示相同参数不会是相同结果,默认是not deterministic
?相关属性短语只有咨询含义 , 并不是强制性的约束
? Drop procedure/function语句用来删除指定名称的存储过程或函数
? Begin…end语句通常出现在存储过程、函数和触发器中,其中可以包含一个或多个语句,每个语句用;号隔开
? 标签label可以加在begin…end语句以及loop, repeat和while语句
?语句中通过iterate和leave来控制流程,iterate表示返回指定标签位置,leave表示跳出标签
?Declare语句通常用来声明本地变量、游标、条件或者handler
?Declare语句只允许出现在begin … end语句中而且必须出现在第一行
?Declare的顺序也有要求,通常是先声明本地变量,再是游标,然后是条件和handler
? 本地变量可以通过declare语句进行声明
?声明后的变量可以通过select … into var_list进行赋值,或者通过set语句赋值,或者通过定义游标并使用fetch … into var_list赋值
? 通过declare声明变量方法:
? MySQL支持if,case,iterate,leave,loop,while,repeat语句作为存储过程和函数中的流程控制语句,另外return语句也是函数中的特定流程控制语句

推荐阅读