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

Mysql 学习笔记4 之 函数和存储过程

2013-04-17 10:07 489 查看
1 首先查看创建函数的功能是否开启

>show variables like '%func%';
默认为log_bin_trust_function_creators=off,可开启

>set global log_bin_trust_function_creators=1;
2 创建函数

当然,你要在需要的数据库下创建

这里,先了解并 推荐使用 'delimiter $$',表示设置 $$ (可以自行定义)为命令终止符号,代替分号(我们经常在begin..end中用到分号);用完之后你还可以通过 'delimiter ;' 恢复为原来的命令终止符号

create function FX(param1 数据类型, param2 数据类型, ...)returns 数据类型begin  return 1;end
3 使用

>select FX('m','n',...);
4 删除

>drop function FX;
5 查看

>show function status; //显示所有>show create function function; //查看某个具体的 ?
6 相关详解

1)变量定义和赋值

>declare variable_name1 数据类型 [default value],variable_name2 数据类型, ...>set 变量名=表达式值 [variable_name=expression ...]
2)用户变量定义和赋值

>select 'xxxx' into @param; //用户变量以@开头。请合理使用用户名。>select @param='xxxx';>select @param; //显示变量值
3)函数变量赋值

>select 某字段1,某字段2 into 某参数1,某参数2 from 某表 [其他sql子句];
存储过程 stored procedure (5.0之后支持的新功能)

1 为什么用它?

首先,要知道我们执行SQL语句时是需要先编译,再执行的;而存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中;用户通过指定存储过程的名字(若需要,给定参数)来调用执行。——至少一个优点就是提高了执行速度。

2 创建

>create procedure 过程名(参数类型 参数名 数据类型)    >过程体 //begin...end (同样推荐 delimiter 分隔符 以区分 程序中需要用到的 ';')
参数类型:

in—输入参数,表示该参数的值必须在调用过程时指定,在存储过程中可修改该参数的值,但不能被返回,参数为默认值

out—输出参数,该参数值可在存储过程中改变,并可返回

inout—输入输出参数,调用时指定,可被改变和返回

3 查看

>show procedure status where db='数据库名';>show create procedure 数据库.存储过程名;
4 修改/删除(具体使用参考手册)

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