MySQL-快速入门存储过程存储函数

Posted zeromz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL-快速入门存储过程存储函数相关的知识,希望对你有一定的参考价值。

1、存储过程

  1》创建存储过程:create procedure

create procedure sp_name ([in|out|inout] param_name type)
[characteristics ...]  routine_body

    characteristics指定存储过程的特性:

      1>language sql:说明routine_body部分是由sql语句组成的,当前系统支持的语言为sql,sql是language特性的唯一值。

      2>[not] deterministic:指明存储过程执行的结果是否确定。deterministic表示结果是确定的。每次执行存储过程时,相同的输入会得到相同的输出。not deterministic表示结果是不确定的,相同的输入可能得到不同的输出。如果没有指定任意一个值,默认为not deterministic。

      3>{contains sql | no sql | reads sql data | modifies sql data}:指明子程序使用sql语句的限制。contains sql表明子程序包含sql语句,但是不包含读写数据的语句;no sql表明子程序不包含sql语句;reads sql data说明子程序包含读数据的语句;modifies sql data表明子程序包含写数据的语句。默认情况下,系统会指定为contains sql。

      4>sql securitydefiner | invoker:指明谁有权限来执行。definer表示只有定义者才能执行。invoker表示拥有权限的调用者可以执行。默认情况下,系统指定为definer。

      5>comment ‘string‘:注释信息,可以用来描述存储过程或函数。

    routine_body:sql代码的内容,可以用begin...end;来表示sql代码的开始和结束。

//最简单的存储过程
create
procedure p_get_avg() begin ... end;
//"delimiter //"的作用是将mysql的结束符设置为//,因为MySQL默认的语句结束符号为分号";",
//为了避免与存储过程中sql语句的结束符相冲突,需要使用delimiter改变存储过程的结束符,并
//"end//"结束存储过程。"delimiter ;"则是恢复默认的";"结束符。
mysql> delimiter // mysql> create procedure p_get_avg() -> begin -> select * from test; -> end// Query OK, 0 rows affected (0.02 sec) mysql> delimiter ;

 

2、存储函数

以上是关于MySQL-快速入门存储过程存储函数的主要内容,如果未能解决你的问题,请参考以下文章

第0天SQL快速入门-了解MySQL存储引擎(SQL 小虚竹)

mysql 存储过程入门

MyBatis总结一:快速入门

MySQL存储过程入门使用

mybatis介绍和mybatis快速入门

Swift快速入门集合