MySQL存储过程
创始人
2024-03-12 23:06:15
0

目录

存储过程 

1、存储过程的概念

2、存储过程的优点

3、创建存储过程

格式:

4、调用存储过程

格式

 5、查看存储过程

格式:

 6、存储过程的参数

 7、删除存储过程

格式:

8、存储过程的控制语句

准备a表

 (1)条件语句if--then--else--end if

 (2)循环语句while ···· end while


存储过程 

1、存储过程的概念

  • 存储过程是一组为了完成特定功能的SQL语句集合。
  • 存储过程在使用过程中是将常用或者复杂的工作预先使用SQL语句写好并用一个指定的名称存储起来,这个过程经编译和优化后存储在数据库服务器中。当需要使用该存储过程时,只需要调用它即可。存储过程在执行上比传统SQL速度更快、执行效率更高。

2、存储过程的优点

  • 执行一次后,会将生成的二进制代码驻留缓冲区,提高执行效率
  • SQL语句加上控制语句的集合,灵活性高
  • 在服务器端存储,客户端调用时,降低网络负载
  • 可多次重复被调用,可随时修改,不影响客户端调用
  • 可完成所有的数据库操作,也可控制数据库的信息访问权限

3、创建存储过程

格式:

格式:
delimiter $$
create procedure xxx()beginsql语句;end $$
delimiter ;

delimiter $$        #将语句的结束符号从分号;临时改为两个$$(可以是自定义)
create procedure xxx()         #创建存储过程,过程名为xxx,不带参数
begin         #过程体以关键字 BEGIN 开始
sql语句;         #过程体语句
end $$         #过程体以关键字 END 结束
delimiter ; #将语句的结束符号恢复为分号

例:


delimiter $$        #改变结束符号,由“;”改为“$$”,也可以自己定义
create procedure cha_info()创建存储过程,名字为cha_info
begin        #以关键字begin开始
select * from info;        #sql语句
end $$        #以关键字end结束,加上命令结束符$$
delimiter ;        #将结束符号改为“;”,“;”前有空格

4、调用存储过程

格式

call 过程名;
例:
call cha_info;

 5、查看存储过程

格式:

show create procedure [数据库.]存储过程名;show procedure status like '%cha_info'\G
#能够查看创建存储过程的状态、时间等信息,却看不了创建的具体命令

 6、存储过程的参数

  • in 输入参数:表示调用者向过程传入值(传入值可以是字面量或变量)
  • out 输出参数:表示过程向调用者传出值(可以返回多个值)(传出值只能是变量)
  • inout 输入输出参数:既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)

Tip:创建时如果有输入参数,调用存储过程后面一定要带参数,否则会在使用时报错。

 7、删除存储过程

存储过程内容的修改方法是通过删除原有存储过程,之后再以相同的名称创建新的存储过程。

格式:

drop procedure 过程名;
drop procedure if exists 过程名;

 Tip:使用if exists是先判断要删除的存储过程是否存在,如果直接删除,会报错提示过程不存在

8、存储过程的控制语句

准备a表

create table t (id int);
insert into t values(10);

 (1)条件语句if--then--else--end if

delimiter $$
create procedure test2(in shu int)
begin
declare var int;
set var=shu*2;
if var>=10 then
update a set id=id+1;
else
update a set id=id-1;
end if;
end $$delimiter ;call test2(6);

 (2)循环语句while ···· end while

delimiter $$
create procedure test3()begindeclare var int;set var=0;while var<6 doinsert into a values(var);set var=var+1;end while;end $$delimiter ;call test3;

相关内容

热门资讯

泰柬冲突升级,特朗普劝和无效,... 泰柬边境的战事持续升级,尽管特朗普积极介入调停,但他个人的曝光度并未能改变局势。泰国凭借其强大的军力...
山西省生态环境保护条例自202... 山西省人民代表大会常务委员会公告 (第六十五号) 《山西省生态环境保护条例》已由山西省第十四届人民代...
公安部通报金融领域“黑灰产”违... 12月25日,公安部在京召开专题新闻发布会,通报公安部和国家金融监督管理总局联合部署开展金融领域“黑...
涉案金额近300亿!两部门集群... 公安部25日通报公安部和国家金融监督管理总局联合部署开展金融领域“黑灰产”违法犯罪集群打击情况。聚焦...
岚县公安:多元共治解纠纷 本报讯 近期,岚县公安局社科派出所积极推进“进村入户大走访”专项行动,推动警务下沉、关口前移,联动乡...
“松鼠AI”遭集体诉讼:创始人... 近日,上海市徐汇区人民法院发布的一则开庭公告引发了教育行业高度关注。 该案件的被告是“松鼠AI”母公...
海峡创新:股价波动受多方面因素... 有投资者在互动平台向海峡创新提问:“公司股价严重脱离基本面市净率达80多,多次触发异动炒作,为何公司...
律师、职业催收人为金融黑灰产推... 南都讯记者蒋小天 发自北京 12月25日,公安部举行新闻发布会,通报公安部和国家金融监管总局联合部署...
丽江旅拍协会:将起诉小红书,要... 近日,云南丽江市古城区文化和旅游局公开发布《关于请小红书平台强化丽江市婚拍领域信息审核监管和监测的函...
桃源法院:调解破局“租金困局”... “感谢法庭从中协调,才让事情顺利解决!”当事人感谢说道。 “你是我见过最理解法官的当事人!”桃源县人...