(1)存储过程定义
存储过程:一组为了完成特定功能的SQL集合。它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
(2)存储过程的优点
①重复使用:存储过程可以重复使用,从而可以减少数据库开发人员的工作量。
②减少网络流量:存储过程存储在数据库服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,
因此降低了网络传输的数据量。
③安全性:参数化的存储过程可以防止SQL注入式攻击。
(3)创建存储过程
DELIMITER //
create procedure <procedureName>(args1 args_type1,args2 args_type2...)
begin
...
end;
//
DELIMITER ;
分隔符
MySQL默认以";“为分隔符,如果没有声明分割符,则编译器会把存储过程当成SQL语句进行处理,因此编译过程会报错,所以要事先用“DELIMITER //”声明当前段分隔符,让编译器把两个”//"之间的内容当做存储过程的代码,不会执行这些代码;“DELIMITER ;”的意为把分隔符还原。
(4)删除存储过程
DROP PROCEDURE IF EXISTS procedureName;
(5)调用存储过程
CALL procedureName();
(6)使用存储过程进行数据制作
MySQL示范脚本
DELIMITER // #"DELIMITER //”声明当前段分隔符,让编译器把两个"//"之间的内容当做存储过程的代码,而不是普通SQL
CREATE PROCEDURE procedureName() #创建存储过程
BEGIN
DECLARE num INT;
SET num = 0; #使用set进行变量赋值
WHILE
num < 5 DO
INSERT INTO USER(NAME, pwd, info)
VALUES(CONCAT("name", num),CONCAT("pwd", num),CONCAT("info", num));
SET num = num + 1;
END WHILE;
END;
// #存储过程结束字符
DELIMITER ; //还原分隔符为;
CALL procedureName(); #设置好了存储过程要执行调用才生效