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

MySQL 函数 存储过程 操作

2015-10-23 16:34 591 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/JamesMori/article/details/49363157


一、函数


一般的RDBMS包括两种类型的函数:内置函数、用户定义函数


创建函数前,先检查创建函数的功能是否开启

show variables like '%func%';

开启此功能

set global log_bin_trust_function_creators=1;

选择数据库


1.创建函数

格式:CREATE FUNCTION [owner_name.] function_name ( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] }  [,...n] ])

           RETURN scalar_return_data_type

           [WITH < function_option > [ [,] ...n] ]

           [AS]

           BEGIN

                   function_body

                   RETURN scalar_expression

           END

例子:

CREATE FUNCTION sum_three(
arg1 int,
arg2 int,
arg3 int
)
RETURN int
BEGIN
     RETURN (arg1+arg2+arg3);

END


2.使用函数

USE database_name;

SELECT sum_three(12,23,34) AS TOTALS; 


3.删除函数

DROP FUNCTION function_name;

例如,删除刚才创建的函数sum_three

DROP FUNCTION sum_three;


二、存储过程


1.创建存储过程

格式:CREATE PROCEDURE procedure_name [OUT | IN | INOUT ] [ @parameter data_type ]

           BEGIN

           sql_statement

           END

例子:


CREATE PROCEDURE proce_name(OUT p_out int)

BEGIN

SELECT COUNT(*) INTO p_out FROM table_name;

END


2.调用存储过程

SET @p_out=0;

CALL proce_name(@p_out);

SELECT @p_out;


3.删除存储过程

            DROP PROCEDURE procedure_name;

            例如删除创建的存储过程proce_name

            DROP PROCEDURE proce_name;



注:一个函数只能返回一个值,一个存储过程返回的是结果集


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