数据库教程:mysql创建存储过程及函数详解

目录1. 存储过程1.1. 基本语法1.2 创建一个指定执行权限的存储过程1.3 delimiter 的使用2. 创建函数 1. 存储过程1.1. 基本语法create procedure name

目录
  • 1. 存储过程
    • 1.1. 基本语法
    • 1.2 创建一个指定执行权限的存储过程
    • 1.3 delimiter 的使用
  • 2. 创建函数 

    1. 存储过程

    1.1. 基本语法

      create procedure name ([params])    unsigned [characteristics] routine_body

     params : in|out|inout 指定参数列表 代表输入与输出

    routine_body: sql代码内容,以begin ……..   end

    characteristics: 指定存储过程特性,包含5种

                               1 deterministic 不确定的
    2 no sql 没有sql语句,当然也不会修改数据
    3 reads sql data 只是读取数据,当然也不会修改数据
    4 modifies sql data 要修改数据
    5 contains sql 包含了sql语句

    1.2 创建一个指定执行权限的存储过程

      create definer=`root`@`%` procedure name ([params])    unsigned [characteristics] routine_body

    definer:指明谁有权力来执行。

    1.3 delimiter 的使用

          ”delimiter //“ 表示设置“//”符号为结束语,因为mysql中默认语句结束为分号‘;’,为了避免存储过程与mysql语句符号冲突,所以有时使用delimiter来改变结束语符号,要配合end //来使用;

     示例:创建一个root账户执行的存储过程,输出给定字符串的长度

      delimiter //  create definer=`root`@`%` procedure `avgfruitprice`(  in f_string varchar(200)  )  begin      select length(f_string);  end//

    2. 创建函数 

    函数的创建与存储过程相同

    示例

      delimiter //  create definer=`root`@`%` function `my_length`(  f_string varchar(200)  )  returns int(11)  unsigned  no sql  begin      return length(f_string);  end//

    注意: 创建函数需要注意3个地方,

    1.  returns: 需指定返回类型

    2. unsigned  no sql 需指定存储过程特性

    3.return: 返回需要的数据

    遇见的错误:

    mysql创建存储过程及函数详解

    如报错如上信息就是没有指定存储过程特性。

    存储过程函数中可以通过mysql查询结果为其参数复制: 其语句为select …. into

      begin    declare onename char(50) default‘0';    declare twoname char(50);    select f_name, b_name into onename, twoname from t_user where id =1;    .......    end//

    说明:

    declare: 存储过程及函数内部定义变量

    default:默认值

    到此这篇关于mysql创建存储过程及函数详解的文章就介绍到这了,更多相关mysql存储过程及函数内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!

    需要了解更多数据库技术:mysql创建存储过程及函数详解,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

    本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

    ctvol管理联系方式QQ:251552304

    本文章地址:https://www.ctvol.com/dtteaching/965016.html

    (0)
    上一篇 2021年12月2日
    下一篇 2021年12月2日

    精彩推荐