⽤于在MYSQL中创建存储过程的关键字是_MySQL创建存储
过程
在开发过程中,经常会遇到重复使⽤某⼀个功能的情况,为此,MySQL引⼊了存储过程
存储过程
就是⼀条或多条SQL语句的集合,当对数据库进⾏⼀系列复杂操作时,存储过程可以将这些复杂操纵,封装成⼀个代码块,以便重复使⽤,⼤⼤减少数据库开发⼈员的⼯作量
创建存储过程
使⽤CREATE PROCEDURE语句
CREATE PROCEDURE sp_name([proc_parameter])
[characteristics……]routine_body
参数说明
CREATE PROCEDURE,创建存储过程的关键字
Sp_name,为存储过程的名称
Proc_parameter,为指定存储过程的参数列表,参数列表的形式,如下
[IN|OUT|INOUT]param_name type
参数列表说明
IN,表⽰输⼊参数
OUT,表⽰输出参数
INOUT,表⽰既可以输⼊,也可以输出
Param_name,表⽰参数名称
type,表⽰参数的类型,可以是MySQL数据库中的任意类型
在创建存储过程的语法格式中,characteristics⽤于指定存储过程的特性,取值如下
LANGUAGE SQL
说明,routine_doby部分,是由SQL语句组成的,当前系统⽀持的语⾔为SQL,SQL是LANGUAGE的唯⼀值
[NOT] DETERMINISTIC
指明存储过程执⾏的结果是否正确,DETERMINISTIC表⽰结果是正确的,每次执⾏存储过程时,相同的输⼊可能得到不同的输出,如果没有指定任意⼀个值,默认为NOT DETERMINISTIC
mysql存储过程使用{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
SQL SECURITY{DEFINER | INVOKER}
指明,谁有权限来执⾏
DEFINER,表⽰只有定义者才能执⾏
INVOKER,表⽰拥有权限的调⽤者可以执⾏
默认情况下,系统指定为DEFINER
COMMENT’string’
注释信息,⽤来表⽰存储过程
Routine_body,是SQL代码的内容,可以⽤BEGIN……END来表⽰SQL代码的开始和结束
⾸先,在数据库chapter06中,创建表student
创建student表之后,插⼊4条记录
创建⼀个查看student表的存储过程
参数说明
DELIMITER //
作⽤,将MySQL的结束符设置为//,因为,MySQL默认的语句结束符号为分号;,为了避免与存储过程中,SQL语句结束符相冲突,需要使⽤DELIMTER改变存储过程的结束符,并且,以END //结束存储过程
存储过程,定义完毕之后,再使⽤DELIMITER,恢复默认结束符 DELIMITER,可以指定其他符号作为结束符 注意,DELIMITER与设置的结束符之间,⼀定要有⼀个空格,否则设置⽆效
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论