Mysql 存储过程(一)

最近做一个项目的二次开发,用到了很多Mysql存储过程,目测至少5000行。在开发中有很多收获,所以把他记下来。


存储过程实际上把业务逻辑从应用程序转移到了数据库上。

如果数据库只是单纯的用把SQL语句放到应用程序里,实际上数据的流程是这样:


而使用存储过程后:


所以存储过程是把业务逻辑从应用程序转移到了数据库。


Mysql存储过程基础笔记:

1,Hello World!:

每当我们学习一门编程语言,都会先写个"Hello World!",虽然这看似简单,但只要能写出“Hello World”,你就会对这门语言的结构有了初步的认识,接着你就可以根据这个结构来进行深入学习。下面我们来写个Mysql 的Hello world .

#--Mysql默认的结束符为";",但存储过程里面很多语句会以";"结束,为了防止冲突,改成其他符号结束,我习惯用"$$"
DELIMITER $$

#--p_hello是存储过程的名字
CREATE PROCEDURE p_hello()

#--存储过程的程序代码体,以Begin...end标记结束和开始
BEGIN
   SELECT "hello world!" ;

#--以"$$结束"
END$$

#--结束经修改过的默认结束符,即把"$$"变为";"
DELIMITER ; 

#--执行存储过程
CALL p_hello() ;


执行结果:

2,1+1=2:

在Mysql里参数由3部分组成:

[IN|OUT|INOUT] parameter_name parameter_type

即输入输出类型,参数名,参数类型

	

<pre code_snippet_id="513880" snippet_file_name="blog_20141110_2_454767" name="code" class="sql">DELIMITER $$

/*
--添加一个加法的存储过程,其中存储过程的参数的形式为:
--[IN|OUT|INOUT] parameter_name parameter_type
--其中:
--a和b是要输入的参数,c是计算后输出的参数
*/
CREATE PROCEDURE p_add(IN a INT , IN b INT , OUT c INT)
BEGIN
  #--进行计算
  SET c = a + b ; 
  
END$$

DELIMITER ;


#--执行存储过程
#--a=1,b=1,c=@x,@x可以看成是一个变量,在计算完之后我们进行打印
CALL p_add(1,1,@x) ;

SELECT @x ;

执行结果:





                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值