其他分享
首页 > 其他分享> > 6、存储过程与存储函数

6、存储过程与存储函数

作者:互联网

存储过程(Stored Procedure)

多条 SQL 语句处理多个表,存储过程是一组为了完成特定功能的 SQL 语句集合。

一组经过预先编译的SQL语句的封装,调用者无需考虑逻辑功能的具体实现过程,它可以被 Java 和 C# 等调用。

  使用存储过程的目的是将常用或复杂的工作预先用 SQL 语句写好并用一个指定名称存储起来,这个过程经编译和优化后存储在数据库服务器中,因此称为存储过程。

优点

创建使用

示例1:无参数的存储过程

-- 创建测试表
CREATE TABLE test (tid int);
-- 删除存储过程
DROP PROCEDURE p1;
DROP PROCEDURE p2;
DROP PROCEDURE p3;

   

示例2:有in和out参数的存储过程

调用存储过程

删除

DROP PROCEDURE [IF EXISTS] 存储过程的名;

存储函数

创建

DELIMITER 新的结束标记
CREATE FUNCTION 函数名(参数名 参数类型,...)
RETURNS 返回值类型
[characteristics ...]
BEGIN
    函数体 RETURN 语句
END 新的结束标记 
DELIMITER ;

调用存储函数

SELECT 函数名(实参列表)

删除

DROP FUNCTION [IF EXISTS] 存储函数的名;

对比存储函数和存储过程

 关键字调用语法返回值应用场景
存储过程 PROCEDURE CALL 存储过程() 理解为有0个或多个 一般用于更新
存储函数 FUNCTION SELECT 函数() 只能是一个 一般用于查询结果为一个值并返回时

此外,存储函数可以放在查询语句中使用,存储过程不行。反之,存储过程的功能更加强大,包括能够执行对表的操作(比如创建表,删除表等)和事务操作,这些功能是存储函数不具备的。

 

标签:语句,存储,END,函数,--,过程,PROCEDURE
来源: https://www.cnblogs.com/seventeen9588/p/16050035.html