一、存储过程
一组预先编译好的SQL语句的集合,理解成批处理语句,是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。
存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。
存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。
二、优点
(1)提高代码的重用性。
(2)简化操作
(3)减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率。
三、创建
CREATE PROCEDURE 存储过程名(参数列表)
BEGIN
存储过程体(一组合法的SQL语句)
END
注意:
(1)参数列表包含三部分:
1)参数模式,(2)参数名,(3)参数类型
参数模式分为3种:
1)IN:该参数可以作为输入,也就是该参数需要调用方传入值
2)OUT:该参数可以作为输出,也就是该参数可以作为返回值。
3)INOUT:给参数既可以作为输入又可以作为输出,也就是该参数既可以传入值,也可以返回值。
(2)如果存储过程体仅仅只有一句话,BEGIN、END可以省略。
(3)存储过程体中的每条SQL语句的结尾要求必须加分号。
(4)存储过程的结尾可以使用DELIMITER重新设置
语法:DELIMITER 结束标记
四、调用
CALL 存储过程名(实参列表);
五、案例
在test数据库下account表中插入五条记录,把这个业务生成一个存储过程,然后调用。
DELIMITER $
CREATE PROCEDURE myp1()
BEGIN
INSERT INTO account(username,balance)VALUES('111',1000),('222',2000),('333',3000),('444',4000),('555',5000);
END $
在DOS框中mysql模式下执行上面语句,去创建一个存储过程,如下:
然后我们可以看到test数据库底下Functions中多了一个myp1
然后接着在DOS框中去调用这个存储过程,
5行记录就会插入到数据库。
111