hello,小伙伴们,今天为大家分析mysql数据库中的存储过程,很多人可能不理解存储过程,那么先给大家简单的介绍一下;
存储过程:
存储过程是一组为了完成特定功能的SQL语句集,经过编译后存储在数据库中,用户可以通过存储过程的名称来调用并执行它
存储过程的优点:
增强了SQL语言的功能和灵活性,可以用控制流语句编写,完成复杂的判断和运算
实现较快的执行速度,因为存储过程是经过预编译后存储在数据库中的,调用并执行存储过程不需要再次编译
减少网络传输量,因为在调用执行存储过程时,只需要将存储过程的名称和参数进行传送
增强了数据的安全性,用户需要知道的仅仅是存储过程的名称和参数,避免了对数据的直接操作
需要注意的是MySQL在5.0以前并不支持存储过程
那么下面为大家介绍一下入门的存储过程
查看数据库中所有存储过程基本信息
语法:SHOW PROCEDURE STATUS;
查看某个具体存储过程
语法:SHOW CREATE PROCEDURE 存储过程名称
存储过程的程序体也不能被修改,当存储过程不再被使用时,使用DROP语句删除
语法:DROP PROCEDURE 存储过程名称;
一条完整的存储过程如下所示
create PROCEDURE p1()#新建一个叫p1的存储过程
BEGIN#用begin开头
DECLARE id int;#声明id是int(整形)数据类型
set id=4;#设置id为4
WHILE id<101 do#id的值不能大于101,应小于101
insert into a VALUES(id,RAND(),NOW(),RAND());#向a表中插入数据其中rand为随机数函数,now为当前时间函数
set id=id+1;#设置id依次加一
END WHILE;#end结束
end;#end结束
call p1();#执行这条存储过程
先要执行这条存储过程还需要拥有对应的关系表,如有需要请私信博主获取原表sql语句