1.创建存储过程之前,使用delimiter $$ 来定义语句结束符,创建完成后,还原语句结束符 delimiter ;
由于MySQL默认以";"为分隔符,则过程体的每一句都被MySQL以存储过程编译,则编译过程会报错,所以要事先用DELIMITER关键字申明
当前段分隔符用完了就把分隔符还原。
2.过程的开始与结束使用BEGIN.....END组合
3.使用show procedure status函数来获得存储过程的信息
MySql5.0以后均支持存储过程
格式:
CREATE PROCEDURE 过程名 ([过程参数[,...]])
[特性 ...] 过程体
CREATE FUNCTION 函数名 ([函数参数[,...]])
RETURNS 返回类型
[特性 ...] 函数体
过程参数:
[ IN | OUT | INOUT ] 参数名 参数类型
函数参数:
参数名 参数类型
返回类型:
有效的MySQL数据类型即可
1、存储过程注释:MySQL支持采用--或者/**/注释,其中前者是行注释,后者是段式注释
2、变量首先用declare申明,其中临时变量可以直接以@前缀修饰以供引用
3、直接采用MySQL的Administrator管理器编辑时,可以直接采用如下函数文本录入;
但若在脚本中自动导入存储过程或函数时,由于MySQL默认以";"为分隔符,则过程体的每一句都被MySQL以存储过程编译,则编译过程会报错
;所以要事先用DELIMITER关键字申明当前段分隔符用完了就把分隔符还原。 如下所示:
DELIMITER $$
Stored Procedures and Functions
DELIMITER ;
4、MySQL支持大量的内嵌函数,有些是和大型商用数据库如oracle、informix、sybase等一致,但也有些函数名称不一致,但功能一致;或者
有些名称一致,但功能相异,这个特别对于从这些数据库开发转过来的DBA要注意。
5、存储过程或函数的调试:我目前还没有研究MySQL所带的各种工具包,还不清楚其提供了调试工具没有,不过编译错误相对好查找;至于业
务流程的调试,可以采用一个比较笨的方法,就是创建一个调试表,在包体中各个流程点都插入一条记录,以观察程序执行流程。这也是一个
比较方便的笨办法。^_^
最后来个总结:
1. 只能说是看各自的习惯的,用procedure可以实现的,大部分用函数都可以的,所以有些package中函数的实现一个,过程的实现一个。
2.考虑是使用函数还是使用存储过程可以根据以下方面:
从参数的返回情况来看:如果返回多个参数值最好使用存储过程,如果只有一个返回值的话可以使用函数;
从调用情况来看:
(1)如果在SQL语句(DML或SELECT)中调用的话一定是存储函数或存储的封装函数不可以是存储过程,但调用存储函数的时候还有好多限制以及函数的纯度等级的问题,你可以参考《ORACLE 9I PL\SQL程序设计》(机械工业出版社);
(2)如果是在过程化语句中调用的话,就要看你要实现什么样的功能。函数一般情况下是用来计算并返回一个计算结果而存储过程一般是用来完成特定的数据操作(比如修改、插入数据库表或执行某些DDL语句等等),所以虽然他们的语法上很相似但用户在使用他们的时候所需要完成的功能大部分情况下是不同的。
3. 让我来简单的说PROCEDURE可以返回值,也可以做一件事,比如几个TABLE之间的数据转来转去,而FUNCTION一定要有返回值,还只能返回一个.....
4.三点与存储过程不同的地方:
a,必须要一个RETURNS语句来定义返回值类型
b,不能指定参数的IN、OUT或INOUT修饰符,所有参数隐式的为IN
c,Function体必须包含RETURN语句来终结Function执行并返回指定的结果给调用者
分享到:
相关推荐
根据提供的文件内容,本篇实验报告主要围绕MySQL数据库中存储过程和函数的应用,涵盖了创建存储过程、函数、游标以及异常处理等高级特性。下面将详细解析报告中的每个知识点。 1. 创建存储过程 存储过程是一种在...
- **递归调用**:存储过程和函数中可以递归地调用其他的过程或函数。 #### 六、存储过程与函数的维护 1. **删除存储过程/函数**: ```sql DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name ``` 2. **查看...
mysql存储过程,存储函数练习,里面有详细代码,供大家参考
通过深入学习和掌握MySQL的函数、触发器和存储过程,开发者能够更加高效地管理和操作数据库,解决复杂的数据处理问题,提升应用程序的性能。在实际项目中,熟练运用这些特性是数据库设计和优化的关键。通过"mysql...
mysql 存储过程 ,存储函数的调用示例
### 精通MySQL存储过程和函数 #### 1. 说明 ##### 1.1 手册适用范围 本手册适用于对MySQL存储过程...通过这些知识点的学习,可以帮助开发者更好地理解和应用MySQL存储过程和函数,从而提高应用程序的性能和安全性。
MySQL 存储过程和函数是数据库中定义的一组用户定义的 SQL 语句集合。它们之间的区别在于: 1. 存储过程实现的功能要复杂一点,而函数实现的功能针对性比较强。 2. 存储过程可以返回参数,而函数只能返回值或者表...
MySQL存储过程和函数是数据库管理中的重要组成部分,它们在数据处理和业务逻辑中扮演着核心角色。本篇文章将深入探讨这两个概念,以及它们在MySQL环境中的应用和差异。 首先,让我们了解一下存储过程。存储过程是一...
CHM文件是一种Windows帮助文件,包含了大量的MySQL知识,如数据库概念、安装配置、SQL语法、索引、视图、触发器、存储过程和函数等。这个手册可以帮助用户快速查找并理解MySQL的各种功能和操作,尤其对于初学者来说...
MySQL存储过程和函数是数据库编程的重要组成部分,它们提供了在数据库服务器上执行特定任务的能力。本部分详细介绍了存储程序和函数的各个方面,包括它们的创建、语法、权限控制以及与性能优化相关的概念。 首先,...
mysql+零基础+mysql存储函数以及函数过程知识点
MySQL存储例程,包括存储过程和存储函数,是数据库管理中的重要组成部分,它们极大地提高了数据库应用的效率和灵活性。在进阶学习中,我们需要深入理解这些概念及其在实际开发中的应用。 1. **存储过程**:存储过程...
本合集主要探讨如何在Java中利用MyBatis来调用MySQL的存储过程和函数。 1. **存储过程和函数的基本概念** - 存储过程:是一组预先编译的SQL语句,可以包含输入、输出参数,能够执行复杂的数据库操作。 - 函数:与...
以上四个示例分别介绍了如何在MySQL中使用触发器、存储过程、自定义函数和视图。这些功能可以帮助开发者更好地管理数据库,实现更高效的数据操作和维护。 - **触发器**:在数据发生变化时自动执行,通常用于审计...
本文实例讲述了mysql存储过程之返回多个值的方法。分享给大家供大家参考,具体如下: mysql存储函数只返回一个值。要开发返回多个值的存储过程,需要使用带有INOUT或OUT参数的存储过程。咱们先来看一个orders表它的...
首先,我们注意到在创建存储过程`myProc`时,使用了`delimiter $$`来改变MySQL客户端的语句分隔符,这是为了在存储过程中使用多个分号(;)而不会导致命令提前结束。存储过程的定义如下: ```sql CREATE PROCEDURE ...
在MySQL 入门教程中,我们能够看到很多关于如何创建储存过程 和如何利用 IN 和 OUT 参数调用存储过程的示例。这些示例都很简单,能够很好的帮助你理解 MySQL 中创建带参数存储过程的语法。这些示例已在 MySQL 5.5 中...
MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一系列SQL语句并封装成一个可重复使用的单元,从而提高数据处理的效率和代码的复用性。本教程将深入探讨MySQL存储过程的创建、调用以及相关概念...
MySQL是世界上最流行的关系型数据库管理系统之一,而存储过程和函数是其强大功能的重要组成部分。本章节将深入探讨这两个概念,以及如何在MySQL中创建、调用、查看、修改和删除它们。 1. **创建存储过程和函数** -...
### MySQL 高级:函数与存储程序 ...通过对上述内容的学习,我们可以了解到MySQL中的函数和存储过程是如何被创建和使用的。这些高级特性为数据库开发提供了强大的支持,使得开发者能够更高效地管理和处理数据。