查看: 103|回复: 3

[Mysql] MYSQL存储过程与函数

[复制链接]
  • TA的每日心情
    难过
    2016-3-1 09:50
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2019-6-15 16:36:45 | 显示全部楼层 |阅读模式

     一、模式



      二、存储过程与存储函数

      语法如下:

      CREATE PROCEDURE sp_name ([proc_parameter[,...]])

      [characteristic ...] routine_body

      CREATE FUNCTION sp_name ([func_parameter[,...]])

      RETURNS type

      [characteristic ...] routine_body

      proc_parameter:

      [ IN | OUT | INOUT ] param_name type

      func_parameter:

      param_name type

      type:

      Any valid MySQL data type

      characteristic:

      LANGUAGE SQL

      | [NOT] DETERMINISTIC

      | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }

      | SQL SECURITY { DEFINER | INVOKER }

      | COMMENT string

      routine_body:

      Valid SQL procedure statement or statements

      例如:存储过程

      mysql> use test;

      mysql> delimiter // ###定义"//"为语句开始执行符号

      mysql> create procedure simpleproc(out param1 int)

      begin

      select count(*) into param1 from t;

      end

      //

      mysql>delimiter ; ####重新定义;为语句开始执行的符号

      mysql> call simpleproc(@a);

      mysql> select @a; ####a为一个变量

      +------+

      | @a |

      +------+

      | 1 |

      +------+

      区别:过程只处理一件事,并无返回值,但可以通过出口参数param1来返回处理后的值;而存储函数可以返回值

      例如:存储函数

      1.字符串拼接函数hello()

      mysql> use test;

      mysql> delimiter //

      mysql> create function hello (t char(20)) returns char(50)

      return concat(‘hello, ’ ,t, ‘!’);

      //

      mysql> delimiter ;

      mysql> select hello(‘world’);


    您需要登录后才可以回帖 登录 | 注册青鸟豆号

    本版积分规则

    Copyright 1999-2019 Beijing Aptech Beida Jade Bird Information Technology Co.,Ltd

    北大青鸟IT教育 北京阿博泰克北大青鸟信息技术有限公司 版权所有

    京ICP备11045574号-3 京公网安备11010802013845号

    快速回复 返回顶部 返回列表