您的位置:首页 > 数据库 > MySQL

一千行MySQL学习笔记(十一)

2015-09-22 12:03 405 查看
--// 存储函数,自定义函数 ----------

-- 新建

CREATE FUNCTION function_name (参数列表) RETURNS 返回值类型

函数体

- 函数名,应该合法的标识符,并且不应该与已有的关键字冲突。

- 一个函数应该属于某个数据库,可以使用db_name.funciton_name的形式执行当前函数所属数据库,否则为当前数据库。

- 参数部分,由"参数名"和"参数类型"组成。多个参数用逗号隔开。

- 函数体由多条可用的mysql语句,流程控制,变量声明等语句构成。

- 多条语句应该使用 begin...end 语句块包含。

- 一定要有 return 返回值语句。

-- 删除

DROP FUNCTION [IF EXISTS] function_name;

-- 查看

SHOW FUNCTION STATUS LIKE 'partten'

SHOW CREATE FUNCTION function_name;

-- 修改

ALTER FUNCTION function_name 函数选项

--// 存储过程,自定义功能 ----------

-- 定义

存储存储过程 是一段代码(过程),存储在数据库中的sql组成。

一个存储过程通常用于完成一段业务逻辑,例如报名,交班费,订单入库等。

而一个函数通常专注与某个功能,视为其他程序服务的,需要在其他语句中调用函数才可以,而存储过程不能被其他调用,是自己执行 通过call执行。

-- 创建

CREATE PROCEDURE sp_name (参数列表)

过程体

参数列表:不同于函数的参数列表,需要指明参数类型

IN,表示输入型

OUT,表示输出型

INOUT,表示混合型

注意,没有返回值。

/* 存储过程 */ ------------------

存储过程是一段可执行性代码的集合。相比函数,更偏向于业务逻辑。

调用:CALL 过程名

-- 注意

- 没有返回值。

- 只能单独调用,不可夹杂在其他语句中

-- 参数

IN|OUT|INOUT 参数名 数据类型

IN 输入:在调用过程中,将数据输入到过程体内部的参数

OUT 输出:在调用过程中,将过程体处理完的结果返回到客户端

INOUT 输入输出:既可输入,也可输出

-- 语法

CREATE PROCEDURE 过程名 (参数列表)

BEGIN

过程体

END
(未完待续)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: