详解MySQL创建存储程序(存储过程和函数)

简单地说,存储过程就是一条或者多条SQL语句的组合,可视为批文件,但是其作用又不仅限于批处理。 (1)创建存储过程 (2)创建存储函数 (3)变量的使用 (4)定义条件和处理程序 (5)光标的

    <img src="https://img.mryunwei.com/uploads/2023/04/20230419062917144.jpg"><p>简单地说,存储过程就是一条或者多条SQL语句的组合,可视为批文件,但是其作用又不仅限于批处理。</p>

(1)创建存储过程 (2)创建存储函数 (3)变量的使用 (4)定义条件和处理程序 (5)光标的使用 (6)流程控制的使用

(免费学习推荐:mysql视频教程)

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

[not] deterministic: 指明存储过程执行的结果是否正确。deterministic表示每次执行存储过程时,相同的输入会得到相同的输出;而not deterministic表示相同的输入可能得到不同的输出。默认为not deterministic。

{contains SQL | no SQL | reads SQL date | modifies SQL date } :指明子程序使用SQL语句的限制。contains SQL表明子程序包含SQL语句;no SQL表明子程序不包含SQ;reads SQL data 表明子程序包含读数据的语句;modifies SQL data表明子程序包含写数据的语句。默认为contatins SQL。

SQL security {definer | invoker}:指明谁有权限来执行。definer表示只有定义者才能执行;invoker表示拥有权限的调用者可以执行。默认为definer。

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

routine_body是SQL代码的内容,可以用begin…end来表示SQL代码的开始和结束。

【例1】创建查看fruits表的存储过程,代码语句如下: