本文共 1679 字,大约阅读时间需要 5 分钟。
有些数据库操作可能会非常复杂, 可能会需要多条sql语句一起去处理完成, 可以使用存储过程
是一组为了完成特定功能的sql语句的集合 从5.0版本才开始支持它可以加快数据库的处理速度,增强数据库在应用 中的灵活性
存储过程是为了完成特定功能的sql集合
在使用过程中,是将常用或者复杂的工作预先使用sql语句写好,并用一个指定的名称存储起来。
这个过程经编译和优化后存储在数据库服务器中,当需要使用该存储过程时,调用即可
在执行时,需要先编译再执行
格式:DELIMITER $$ #将语句的结束符号从分号;临时改为两个$$(可以是自定义)CREATE PROCEDURE xxx() #创建存储过程,过程名为xxx,不带参数 BEGIN #过程体以关键字 BEGIN 开始 sql语句; #过程体语句 END $$ #过程体以关键字 END 结束DELIMITER ; #将语句的结束符号恢复为分号例: delimiter $$create procedure cc() begincreate table mk (id int(10),name char(10),score int(10));insert into mk values(1,'wang',13);select * from mk;end $$delimiter ;call cc();
参数分为: 1.存储过程的主体部分,称为过程体 2.以begin开始,end结束,若只有一条sql语句,可以省略begin-end 3.以delimiter开始和结束
带参数存储过程:
delimiter $$create procedure getrole(in inname varchar(16)) begin select a_id,a_name,a_level from test1 where a_name=inname;end $$delimiter ;call getrole('aaaa');
SHOW CREATE PROCEDURE [数据库.]存储过程名; #查看某个存储过程的具体信息例:show create procedure cc\G;
alter procedure <过程名> <特征>特征> 过程名>
show create procedure getrole\G;alter procedure getrole modifies sql data sql security invoker;show create procedure getrole\G;
drop procedure if exists getrole;
存储过程:数据库操作复杂,可使用多条sql语句一起完成为了完成特定功能的sql集合就是将复杂的工作预先写好,指定存储起来执行时进行调用
存储过程:
带参数
输入参数,IN:调用者向过程传入 输出参数:OUT,过程向调用者传出值不带参数
转载地址:http://opeu.baihongyu.com/