存储过程和函数
存储过程和函数是 事先经过编译并存储在数据库中的一段
SQL
语句的集合,调用存储过程和函数可以简化应用开 发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。
使用存储过程和存储函数的优势:可以减少我们应用程序和我们数据库之间的交互,应用程序和数据库之间存在网络传输,交互的次数越多性能越低,这个时候就可以将所有的sql语句都封装到一个集合当中,应用程序只需要调用一次就可以执行集合当中所有的sql语句
存储过程和函数的区别在于函数必须有返回值,而存储过程没有。
- 函数 : 是一个有返回值的过程 ;
- 过程 : 是一个没有返回值的函数 ;
创建存储过程
CREATE PROCEDURE 存储过程的名字 (参数) begin
-- SQL语句
end ;
调用存储过程
call 存储过程名() ;
查看存储过程
-- 查询db_name数据库中的所有的存储过程
select name from mysql.proc where db='数据库名';
-- 查询存储过程的状态信息
show procedure status;
-- 查询某个存储过程的定义
show create procedure test.存储过程名 \G;
删除存储过程
DROP PROCEDURE [IF EXISTS] 存储过程名 ;
存储过程弊端
不同数据库,语法差别很大,移植困难,换了数据库,需要重新编写;
不好管理,把过多业务逻辑写在存储过程不好维护,不利于分层管理,容易混乱,一般存储过程适用于个别对性能要求较高的业务,其它的必要性不是很大;