1,Mysql手册中把function和procedure放在一起讲解,这个是造成大家困扰的很大一个方面。其实,function就当作 php的function来理解就ok,而procedure是实现某一个功能的一整套动作和过程。function很简单,执行了他,得到对应想要的结果,如:截取字符串;而procedure用来实现某一个用例,如做一连串的数据库操作。
2,procedure有in\out\inout类型的参数,但function只有默认的in类型的参数。至于procedure中in等类型怎样用,请参考:http://blog.csdn.net/ethansky/archive/2009/08/20/4467178.aspx 这位仁兄写的超级详细。
3,function 总是要有明确的return来返回结果,而procedure需要另外的方式来做。
4,一些实践:
a,一个自定义的function:
DELIMITER $$
DROP FUNCTION IF EXISTS `hello`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `hello`(s CHAR(20)) RETURNS char(50) CHARSET utf8
RETURN CONCAT(’Hello, ‘,s,’!')$$
DELIMITER ;
我可以这样将自定义函数直接用于SQL中:
insert into test (name,status) values (hello(’a'),1);
b,对于procedure,可以这样:
DELIMITER $$
DROP PROCEDURE IF EXISTS `add_comment`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `add_comment`(`entry_id` int,`new_content` text)
BEGIN
DECLARE true_id int DEFAULT 0;
select `id` into true_id from `sgtest`.`blog_entries` where `id`=entry_id;
IF true_id>0 THEN
insert into `sgtest`.`blog_comments` (`entry_id`,`content`) values(entry_id,hello(new_content) );
END IF;
END$$
转载:http://www.bumao.com/index.php/2010/05/mysql-function-vs-procedure.html
分享到:
相关推荐
在 MySQL 中,创建存储过程的语法是:`CREATE PROCEDURE proc_Name ([proc_parameter]) routine_body`。这里的参数类型可以是 IN, OUT, INOUT,分别表示输入参数、输出参数和输入输出参数。例如,以下是一个显示 ...
MySQL存储过程和函数是数据库编程的重要组成部分,它们提供了在数据库服务器上执行特定任务的能力。本部分详细介绍了存储程序和函数的各个方面,包括它们的创建、语法、权限控制以及与性能优化相关的概念。 首先,...
**CREATE PROCEDURE** 和 **CREATE FUNCTION** 用于定义新的存储程序或函数。 - **CREATE PROCEDURE** 用于创建存储过程。 - **CREATE FUNCTION** 用于创建函数,函数可以返回单一的标量值。 **示例:** ```sql ...
### MySQL 高级:函数与存储程序 #### 一、MySQL中的函数定义与使用 在MySQL中,用户定义的函数可以极大地扩展SQL的功能,使得能够执行更为复杂的逻辑处理。通过创建自定义函数,开发者可以封装特定的操作并重复...
使用MyBatis框架配置Oracle和MySql中存储过程与函数的调用。 分别描述了两种方式的实现:基于XML方式和注解方式。 其中Oracle所使用版本为Oracle11g_XE版,MySQL为5.7版本
### MySQL存储过程与函数详解 #### 一、概述 MySQL是一种广泛使用的开源关系型数据库管理系统,在数据管理和存储方面提供了强大的支持。其中,存储过程和函数是MySQL提供的两种重要的编程特性,它们可以帮助开发者...
MySQL 存储过程与函数 MySQL 存储过程和函数是数据库中定义的一组用户定义的 SQL 语句集合。它们之间的区别在于: 1. 存储过程实现的功能要复杂一点,而函数实现的功能针对性比较强。 2. 存储过程可以返回参数,而...
MySQL 5.7中的创建视图、函数和存储过程是数据库管理的重要组成部分,它们提供了增强的数据抽象和操作便利性。以下将详细介绍这三个概念及其在MySQL 5.7中的使用。 ### 1. 视图 (View) 视图是虚拟表,它不存储实际...
### 精通MySQL存储过程和函数 #### 1. 说明 ##### 1.1 手册适用范围 本手册适用于对MySQL存储过程...通过这些知识点的学习,可以帮助开发者更好地理解和应用MySQL存储过程和函数,从而提高应用程序的性能和安全性。
### MySQL存储过程详解 #### 存储过程简介 在MySQL中,存储过程是一种预先定义并编译好的SQL语句集合,它可以实现复杂的功能,并通过一个名称来调用这些功能。存储过程可以接受输入参数,输出参数,甚至可以返回...
MySQL与Oracle数据库在存储过程和Function方面的差异主要体现在创建语法、存储结构、参数定义以及包的使用上。下面将详细阐述这些差异。 1. **创建存储过程和函数的语句差异** - Oracle使用`CREATE OR REPLACE ...
最近有用到对存储过程(procedure)重命名的功能,在网上找了一下资料都没有讲到在mysql中是如何实现的,当然可以删掉再重建,但是应该有别的方法,在“mysql”这个数据库(自带)中找了一下,发现两张表:func、proc...
#### 二、MySQL存储过程的基本概念 在了解如何导出存储过程之前,我们先来简要回顾一下存储过程的一些基本概念: - **定义**:存储过程是一组预编译的SQL语句,可以接受输入参数,返回输出参数或结果集,并且可以在...
2.3.14. 在Windows环境下对MySQL安装的故障诊断与排除 2.3.15. 在Windows下升级MySQL 2.3.16. Windows版MySQL同Unix版MySQL对比 2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7....
2.3.14. 在Windows环境下对MySQL安装的故障诊断与排除 2.3.15. 在Windows下升级MySQL 2.3.16. Windows版MySQL同Unix版MySQL对比 2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7....
MySQL是世界上最流行的关系型数据库管理系统之一,而存储过程和函数是其强大功能的重要组成部分。本章节将深入探讨这两个概念,以及如何在MySQL中创建、调用、查看、修改和删除它们。 1. **创建存储过程和函数** -...
MySQL中的存储过程和触发器是数据库管理中两个重要的高级特性,它们极大地增强了数据库的灵活性和安全性,同时也优化了性能。 **存储过程**是预编译的SQL语句集合,存储在数据库服务器上,可以在需要时被调用执行,...
### MySQL存储过程详解 #### 一、存储过程概述 存储过程是一种特殊类型的SQL代码集合,它们预先被编译并存储在数据库服务器上。用户可以通过指定存储过程的名字并提供必要的参数来调用这些过程。存储过程提供了...