首页 > 代码库 > 一点示例明白mysql存储过程

一点示例明白mysql存储过程

</pre></div><div style="font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', SimSun, 'Segoe UI', Tahoma, Helvetica, sans-serif, 'Microsoft YaHei', Georgia, Helvetica, Arial, sans-serif, 宋体, PMingLiU, serif; line-height: 21px;"><span style="font-size:18px;"><span style="font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', SimSun, 'Segoe UI', Tahoma, Helvetica, sans-serif, 'Microsoft YaHei', Georgia, Helvetica, Arial, sans-serif, 宋体, PMingLiU, serif; line-height: 37.894737243652344px;">封装sql:</span></span><!--EndFragment--></div><div style="font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', SimSun, 'Segoe UI', Tahoma, Helvetica, sans-serif, 'Microsoft YaHei', Georgia, Helvetica, Arial, sans-serif, 宋体, PMingLiU, serif; line-height: 21px;"><span style="font-size:18px;"><span style="font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', SimSun, 'Segoe UI', Tahoma, Helvetica, sans-serif, 'Microsoft YaHei', Georgia, Helvetica, Arial, sans-serif, 宋体, PMingLiU, serif; line-height: 37.894737243652344px;"></span></span><pre name="code" class="sql">create procedure p1()
begin
select  * from t_news;
end $         //mysql存储过程 简单实例
   显示存储过程信息:  \G (横向表格采用纵向表格输出)


 delimiter $  改变执行符号,直到mysql碰到$ 开始执行语句命令
 set  names     解决mysql乱码问题  但mysql重启后又还原到以前字符集状态

  call 存储过程名字 ()  调用存储过程

参数:
<span style="font-size:18px;">create procedure p2(n int)    #含参
begin
select  * from t_category where cid > n;
end $   </span>   


控制结构:
<span style="font-size:18px;">create procedure p3(n int, j char(1))    #含参
begin  
if j='h'  then       #与其他语言不同 必须加then 注意符号= 不是==
 select  * from t_category where cid > n;
else
select  * from t_category where cid <n;   
end if;
end $      </span>





计算1....n的和:

create procedure p4(n smallint)    #含参
begin  
declare  i int;
declare s int;
set s = 0;
set i = 1;
while i<=n do
set s =s+i;
set i=i+1;
end while;
select s;
end $      


<img src=http://www.mamicode.com/"" alt="" style="font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', SimSun, 'Segoe UI', Tahoma, Helvetica, sans-serif, 'Microsoft YaHei', Georgia, Helvetica, Arial, sans-serif, 宋体, PMingLiU, serif; background-color: rgb(255, 255, 255);" />

存储过程和函数的区别:

名称不同  :存储过程:procedure    函数function 
存储过程没有返回值