标签:简单 query 读数 efi 情况 test 信息 nis 不包含
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 security{definer | 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、存储函数
标签:简单 query 读数 efi 情况 test 信息 nis 不包含
原文地址:https://www.cnblogs.com/ZeroMZ/p/11461295.html