Mysql之存储过程和函数

  

<强>

create  procedure  sp_name (proc_parameter)   (特点……],routine_body   创建存储函数名为sp_name,存储过程的名为:proc_parameter

,,,, 1只

,,,, 2只

,,1.

,,,, 2只

,,,, 3只

,,,, 4只;

,,1.

,,,, 2只

mysql>, delimiter //,,,,,, #,定义sql语句的结束符号为//,使用这条命令时,应该避免(“\”)字符,因为反斜线是Mysql的转意符。   mysql>, create  procedure  p1 ()   →才能开始   →,才能select , *,得到t;   →才能最终获得//mysql>, delimiter ;   mysql>, show  procedure  status  \ G ,,,,,,, #,查看存储过程信息   mysql>, call  p1 ,,, #,读取这个存储过程


mysql> delimiter //mysql>, create  procedure  p2 (n  int)   →才能开始   →,才能select  *,得到t  where  id =, n;   →才能最终获得//mysql>, delimiter ;   mysql>, show  procedure  status  \ G   mysql>, call  p2(1),,,,,,,,, #,需要带入取值

mysql>, create  database  db_proc;   mysql> use  db_proc   mysql>, CREATE  TABLE “proc_test”, (   →,才能“id”,非常小的整数(4),NOT  NULL  AUTO_INCREMENT,   →,才能“用户名”,varchar (20), NOT 空,   →,才能‘密码’,varchar (20), NOT 空,   →,才能PRIMARY  KEY  (id)   →,才能),引擎=MyISAM  AUTO_INCREMENT=50, DEFAULT  CHARSET=use utf8;      mysql> delimiter //mysql>, create  procedure  mytest (name 拷贝;varchar(20),拷贝pwd  varchar (20))   →才能开始   →,才能insert  into  proc_test(用户名、密码),值(名称、pwd);   →才能最终获得//mysql>, delimiter ;   mysql>, call  mytest (& # 39; lxq& # 39; & # 39;密码# 39;),;   mysql>, select  *,得到proc_test;,,,,,, #,验证插入了数据


mysql> DELIMITER //mysql>, CREATE  PROCEDURE  sp_demo_in_parameter (p_in 拷贝;INT)   ,,,→开始   ,,,,,SELECT  p_in;,,,,, #,查询输入参数   ,,,,,SET  p_in=2,,,,,,, #,修改   ,,,,,select  p_in;,,,,, #查看修改后的值   ,,,→最终获得//mysql>, DELIMITER ;


mysql>, set  @p_in=1;   mysql>, call  sp_demo_in_parameter (@p_in);   mysql>, select  @p_in;   以上可以看的出,p_in虽然在存储过程中被修改,但并不影响@p_id的值


mysql> DELIMITER //mysql>, CREATE  PROCEDURE  sp_demo_out_parameter (OUT  p_out  INT)   ,,,→开始   ,,,,,SELECT  p_out;,,,, #,查看输出参数   ,,,,,SET  p_out=2,,,,,, #,修改参数的值   ,,,,,SELECT  p_out;,,,, #,看看有否变化   ,,,→最终获得//mysql>, DELIMITER ;

mysql>, SET  @p_out=1;   mysql>, CALL  sp_demo_out_parameter (@p_out);   mysql>, SELECT  @p_out;   p_out在存储过程中被修改,直接影响@p_out的值

mysql> DELIMITER //mysql>, CREATE  PROCEDURE  sp_demo_inout_parameter (INOUT  p_inout  INT)   ,,,→开始   ,,,,,SELECT  p_inout;   ,,,,,SET  p_inout=2;   ,,,,,SELECT  p_inout;   ,,,,,结束;   mysql>, DELIMITER ;


set  @p_inout=1;   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Mysql之存储过程和函数