存储过程与存储函数

本文详细介绍了MySQL中的存储过程,包括其概念、好处、分类、创建语法及示例。存储过程能够简化SQL操作,提高重用性和安全性,减少网络传输。文章通过多个示例展示了如何创建和调用不同类型的存储过程,如无参数、带IN、OUT和INOUT参数的过程,并解释了参数类型的作用。此外,还讨论了存储过程的权限和约束条件。

存储过程与存储函数

MysQL从5.0版本开始支持存储过程和函数。存储过程和函数能够将复杂的SQL逻辑封装在一起,应用程序无须关注存储过程和函数内部复杂的SQL逻辑,而只需要简单地调用存储过程和函数即可。

存储过程概述

理解

含义:存储过程的英文是Stored Procedure。它的思想很简单,就是一组经过预先编译的SQL语句的封装。执行过程:存储过程预先存储在MySQL服务器上,需要执行的时候,客户端只需要向服务器端发出调用存储过程的命令,服务器端就可以把预先存储好的这一系列SQL语句全部执行。

好处:

  • 1、简化操作,提高了sql语句的重用性,减少了开发程序员的压力

  • 2、减少操作过程中的失误,提高效率

  • 3、减少网络传输量(客户端不需要把所有的sQL语句通过网络发给服务器)

  • 4、减少了SQL语句暴露在网上的风险,也提高了数据查询的安全性

和视图、函数的对比:
它和视图有着同样的优点,清晰、安全,还可以减少网络传输量。不过它和视图不同,视图是虚拟表通常不对底层数据表直接操作而存储过程是程序化的SQL,可以直接操作底层数据表,相比于面向集合的操作方式,能够实现一些更复杂的数据处理。
一旦存储过程被创建出来,使用它就像使用函数一样简单,我们直接通过调用存储过程名即可。相较于函数存储过程没有返回值的。

分类

存储过程的参数类型可以是IN、OUT和INOUT。根据这点分类如下:

1、没有参数(无参数无返回)

2、仅仅带IN类型(有参数无返回)

3、仅仅带OUT类型(无参数有返回)

4、既带IN又带OUT(有参数有返回)

5、带INOUT(有参数有返回)

注意:IN、OUT、INOUT都可以在一个存储过程中带多个

创建存储过程

语法分析

语法:

CREATE PROCEDURE sp_name (  [ IN | OUT | INOUT  参数名,参数类型])
    [characteristic ...] 
BEGIN
	存储过程体

END [end_label]

类似于Java中的方法

访问修饰符 返回值类型 方法名 (参数列表)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值