zoukankan      html  css  js  c++  java
  • Mysql 学习笔记4 之 函数和存储过程

    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

  • 相关阅读:
    MySql多表循环遍历更新
    GridView控件的选择功能,代码实现CheckBox控件的全选、反选以及取消
    使用HTTP POST请求12306网站接口查询火车车次API
    GridView控件的绑定分页功能
    使用HTTP GET请求12306网站接口获取车站名和车站Code
    浅谈从Oracle数据库中取出10条数据的Select语句与Sql Server、MySql的区别
    2022 程序员口语提升指南
    R语言与java整合
    新浪的股票接口 c# (收藏)
    摘记
  • 原文地址:https://www.cnblogs.com/20120810bubu/p/3024224.html
Copyright © 2011-2022 走看看