mysql-存储过程

mysql - 存储过程:

1.简介
2.存储过程的优缺点
3.常用的命令
4.创建存储过程

一、简介:

概念类似于函数就是把一段代码封装起来,当要执行这段代码的时候,可以通过调用该存储过程来实现。在封装的语句里面,可以使用if/else,case,while 等控制结构
可以进行 SQL 编程

二、存储过程的优缺点:

存储过程的好处:

  • 1.通过把处理封装在容易使用的单元中,简化复杂的操作。
  • 2.由于不要反复简历一系列处理步骤,这保证了数据的完整性。
  • 3.简化对变动的管理
  • 4.提高性能
  • 5.存在一些职能用在单个请求中的mysql元素和特性,存储过程可以使用它们来编程功能更强更灵活的代码。

存储过程的缺点:

  • 1.一般来说,存储过程的编写比基本SQL语句复杂
  • 2.你可能没有创建存储过程的安全访问权限
  • 3.移植性差

三、存储过程常用命令:

查看现有的存储过程:show procedure status
删除存储过程:drop procedure 存储过程的名字;(删除存储过程不需要带括号)
调用存储过程:call 存储过程名字(); 或者 call 存储过程名字;(括号可以省略不写)

四、创建存储过程:

需要临时修改语句结束分隔符为$ delimiter $
1,体会SQL的“封装”

create procedure p1()
begin 
	select * from g;
end$

2,带“参数”

create procedure p2(n int)
begin
	select * from g where num > n;
end$

3,使用 if else

create procedure p3(n int, j char(1))
begin
	if  j = 'h' then
		select * from g where num > n;
	else 
		select * from g where num < n;
	end if;
end$

4,使用 while 循环,计算 1-n 的和
声明变量,赋值。如果入参类型为 boolean 类型,0表示false,1表示true。

create procedure p4(n smallint)
begin
	declare i int;    // 声明变量
	declare s int default 1;   // 默认值为 1
	set i = 1;         // 赋值
	set s = 0;
	while i <= n do
		set s = s + i;
		set i = i + 1;
	end while;
end$

5,存储过程中的输入参数和输出参数:
输入型参数 in:在进行调用时需要传参
输出型参数 out :在调用时,需要使用“@”开头定义一个变量,在调用完存储过程之后,可以使用
select @变量名; 来查看存储过程执行的结果。

create procedure ordertotal(in number int, out total decimal(10,2))
begin
	select sum(item_price * quantity) from orderitems where order_num = number 
	into total;    // 把查询计算出来的结果赋值为输出参数 total
end$

调用:

1.先把结束分割符改回来 
	delimiter ;
2.调用:
	call ordertotal(100, @total);
3.查看存储过程执行的结果:
	select @total;

在mysql中,存储过程和函数的区别:

1,名称不同
自定义函数:create function
2,存储过程没有返回值

mysql 自定义函数:
https://blog.csdn.net/java_xuetu/article/details/78941132

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值